Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2011, 17:08   #1
werrey
Форумчанин
 
Регистрация: 01.02.2011
Сообщений: 105
По умолчанию Bass.Dll в Delphi XE не работает.

Здравствуйте.
Подскажите пожалуйста, почему не работает звук Bass.Dll в Delphi XE?
Если компилировать в Delphi 7 , то все нормально работает, а если компилировать в Delphi XE, то звука нет, и ошибок тоже не выдает.

Вот пример кода:

Код:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Classes, Controls, Forms, Bass,
  StdCtrls;

type
  TChannelType = (ctUnknown, ctStream, ctMusic);

type
  TfrmMain = class(TForm)
    btnStop: TButton;
    btnPlay: TButton;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure btnStopClick(Sender: TObject);
    procedure btnPlayClick(Sender: TObject);

  private
    Channel: DWORD;
    ChannelType: TChannelType;
    function BASS_PlaySoundFile(const FileName: string): Boolean;
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.DFM}

function TfrmMain.BASS_PlaySoundFile(const FileName: string): Boolean;
var
  ChannelInfo: BASS_CHANNELINFO;
begin
  Result:= False;
  Channel:= BASS_StreamCreateFile(False, PChar(FileName), 0, 0, 0);
  if (Channel <> 0) then
    ChannelType:= ctStream;

  if (Channel <> 0) then
  begin
    BASS_ChannelPlay(Channel, False);
  end;
  Result:= Channel <> 0;  
end;

procedure TfrmMain.FormCreate(Sender: TObject);
var
  BassInfo: BASS_INFO;
begin
  BASS_Init(1, 44100, BASS_DEVICE_3D, Handle, nil);
  BASS_Start;
  BASS_GetInfo(BassInfo);

end;


procedure TfrmMain.btnStopClick(Sender: TObject);
begin
    BASS_ChannelStop(Channel);
end;

procedure TfrmMain.btnPlayClick(Sender: TObject);
begin
BASS_PlaySoundFile('test.mp3');
end;

end.

Последний раз редактировалось werrey; 11.06.2011 в 18:19.
werrey вне форума Ответить с цитированием
Старый 11.06.2011, 17:46   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

возможно, так:

Код:
Channel:= BASS_StreamCreateFile(False, PAnsiChar(AnsiString(FileName)), 0, 0, 0);
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 11.06.2011, 17:50   #3
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

BASS_StreamCreateFile(False, PChar(FileName), BASS_UNICODE, 0, 0);

при такой конструкции кода конечно не будут вылазить ошибки! читай хелп
ZuBy вне форума Ответить с цитированием
Старый 11.06.2011, 18:07   #4
werrey
Форумчанин
 
Регистрация: 01.02.2011
Сообщений: 105
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
возможно, так:

Код:
Channel:= BASS_StreamCreateFile(False, PAnsiChar(AnsiString(FileName)), 0, 0, 0);
Спасибо, помогло.
werrey вне форума Ответить с цитированием
Старый 11.06.2011, 18:50   #5
werrey
Форумчанин
 
Регистрация: 01.02.2011
Сообщений: 105
По умолчанию

Подскажите пожалуйста, как сразу 2 звуковых файла воспроизвести?

Код:
procedure TfrmMain.btnPlayClick(Sender: TObject);
begin
BASS_PlaySoundFile('test.mp3');
BASS_PlaySoundFile('test2.mp3');
end;
Так не работает(

Всё, разобрался, вопрос снят, всем большое спасибо за помощь!

Последний раз редактировалось werrey; 12.06.2011 в 10:11.
werrey вне форума Ответить с цитированием
Старый 12.06.2011, 11:34   #6
werrey
Форумчанин
 
Регистрация: 01.02.2011
Сообщений: 105
По умолчанию

Возник новый вопрос:

Как сделать, чтобы звук проигрывался постоянно, с повтором?

Последний раз редактировалось werrey; 12.06.2011 в 11:40.
werrey вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать в Delphi mp3 плеер? Без использования bass.dll. megatronx Помощь студентам 2 10.03.2010 17:15
bass.dll larry Общие вопросы C/C++ 1 09.11.2009 13:23
Ошибка при выхове функций Bass.dll из другой DLL SalasAndriy Общие вопросы Delphi 7 21.10.2009 23:36
bass.dll Elem Мультимедиа в Delphi 18 19.07.2009 11:04
Пишу DLL в Delphi.Вызываю функцию в С.Не работает Ozerich Общие вопросы Delphi 4 26.08.2008 10:17