|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Проблема с затуханием звука BASS
Все воспроизводится, затухание происходит, вот только музыка играет только 3 секунды, FadeTime - это время через которое звук должен возрастать до 100.
Помогите плз) Вот код: Код:
procedure PlayStreamSync(handle: HSYNC; Stream, data: DWORD; user: Pointer); stdcall; begin BASS_ChannelRemoveSync(Stream,Handle); BASS_StreamFree(Channel); Channel:=Buffer; Buffer:=0; end; procedure TForm1.FreeStream(var Stream: HStream); begin BASS_ChannelStop(Stream); BASS_StreamFree(Stream); end; procedure TForm1.PlayStream; begin if Buffer=0 then Exit; if Channel=0 then begin Channel:=Buffer; Play; end else if BASS_ChannelIsActive(Channel)=Bass_Active_Stopped then begin FreeStream(Channel); Channel:=Buffer; Play; end else begin BASS_ChannelSlideAttribute(Channel,BASS_ATTRIB_VOL,0,FadeTimer); BASS_ChannelSetAttribute(Buffer,BASS_ATTRIB_VOL,0); BASS_ChannelPlay(Buffer,False); end; PlaySync:=BASS_ChannelSetSync(Buffer,BASS_SYNC_SLIDE,0,@PlayStreamSync,nil); BASS_ChannelSlideAttribute(Buffer,BASS_ATTRIB_VOL,Volume / 100,FadeTimer) end; procedure TForm1.FormCreate(Sender: TObject); begin if bass_init(-1, 44100,0, handle,nil)=false then showmessage('Îøèáêà'); Channel:=0; Buffer:=0; FadeTimer:=3000; Volume:=100; end; procedure TForm1.Play; begin if Channel=0 then Exit; BASS_ChannelSetAttribute(Channel,BASS_ATTRIB_VOL,0); BASS_ChannelPlay(Channel,False); BASS_ChannelSlideAttribute(Channel,BASS_ATTRIB_VOL,Volume / 100,FadeTimer) end; procedure TForm1.FormDestroy(Sender: TObject); begin bass_free(); end; procedure TForm1.btn1Click(Sender: TObject); begin if Open.Execute=false then exit; LoadStream(Open.FileName); end; procedure TForm1.sButton1Click(Sender: TObject); begin LoadStream('D:\MuZa\Aksent\Aksent - Hood Boy.mp3'); PlayStream; end; procedure TForm1.btn3Click(Sender: TObject); begin bass_channelplay(Channel, false); end; procedure TForm1.LoadStream(FileName: string); begin if Buffer<>0 then Buffer:=0; Buffer:=Bass_StreamCreateFile(False,PChar(FileName),0,0,0); end; procedure TForm1.sButton3Click(Sender: TObject); begin LoadStream('D:\MuZa\Adidas\Adidas - New Hit.mp3'); PlayStream; end; |