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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2012, 23:35   #1
KrockodilL
 
Регистрация: 06.04.2011
Сообщений: 4
По умолчанию Bass.dll не воспроизводится wav

Есть программа, которая должна воспроизводить выбранный файл.
Вроде бы всё правильно, ошибок не выдает, однако звука нет.
Как это исправить?

unit Unit1;

interface

uses
Windows, Messages, SysUtils, bass, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
filename: string;
channel: cardinal;

implementation

{$R *.dfm}
procedure basicplayerplayfile( const filname:string);
var
ffilename: pchar;
begin
if not fileexists(filename)
then exit;
ffilename:=pchar(filename);
if channel <>0 then
begin
bass_channelstop(channel);
bass_streamfree(channel);
channel:=0;
end;

channel:=bass_streamcreatefile(fals e,ffilename,0,0,0);
if channel=0 then
begin
messagebox(0,'Ошибка загрузки файла',0, mb_ok or mb_iconstop);
exit
end;
if not bass_channelplay(channel,false) then
begin
messagebox(0,'Ошибка воспроизведения файла',0, mb_ok or mb_iconstop);
exit;
end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
if opendialog1.execute then begin
basicplayerplayfile(opendialog1.Fil eName);
Bass_channelPlay(channel, false);
end;


end;

procedure TForm1.FormCreate(Sender: TObject);
begin
if not BASS_Init(-1, 44100, 0, handle, nil) then
halt;
end;


end.
KrockodilL вне форума Ответить с цитированием
Старый 15.03.2012, 11:54   #2
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Какая версия Delphi?
Если Delphi 2009 и выше то флаг BASS_UNICODE надо добавить
и вот тут TRUE, чтобы трек сначала воспроизвелся
Код:
if not bass_channelplay(channel,TRUE) then
ZuBy вне форума Ответить с цитированием
Старый 16.03.2012, 16:09   #3
Lesha
Форумчанин
 
Аватар для Lesha
 
Регистрация: 30.01.2009
Сообщений: 418
По умолчанию

класс TBassSimple позволяет легко и просто создавать программы на Delphi с фукнцией воспроизведения mp3/ogg/wav файлов даже многопоточно, используя ресурсы bass.dll

документация - http://jqbook.narod.ru/delphi_bass.html
Lesha вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
BASS.DLL Serrg1994 Мультимедиа в Delphi 0 20.09.2011 21:38
Ошибка при выхове функций Bass.dll из другой DLL SalasAndriy Общие вопросы Delphi 7 21.10.2009 23:36
BASS DLL ygy Мультимедиа в Delphi 4 29.09.2009 04:39
BASS.DLL VintProg Мультимедиа в Delphi 2 21.09.2009 16:36
bass.dll Elem Мультимедиа в Delphi 18 19.07.2009 11:04