YURSHAT
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору [Files] Source: "C:\BASS.dll"; DestDir: "{tmp}"; Flags: dontcopy Source: "C:\BASSMIDI.dll"; DestDir: "{tmp}"; Flags: dontcopy Source: "C:\music.mid"; DestDir: "{tmp}"; Flags: dontcopy [Code] const BASS_SAMPLE_LOOP = 4; // looped type HSTREAM = DWORD; // sample stream handle function BASS_Init(device: Integer; freq, flags: DWORD; win: hwnd; CLSID: Integer): Boolean; external 'BASS_Init@files:BASS.dll stdcall delayload'; function BASS_MIDI_StreamCreateFile(mem: BOOL; f: PChar; offset: DWORD; length: DWORD; flags: DWORD; freq: DWORD): HSTREAM; external 'BASS_MIDI_StreamCreateFile@files:BASSMIDI.dll stdcall delayload'; function BASS_Start(): Boolean; external 'BASS_Start@files:BASS.dll stdcall delayload'; function BASS_ChannelPlay(handle: DWORD; restart: BOOL): Boolean; external 'BASS_ChannelPlay@files:BASS.dll stdcall delayload'; function BASS_Stop(): Boolean; external 'BASS_Stop@files:BASS.dll stdcall delayload'; function BASS_Free(): Boolean; external 'BASS_Free@files:BASS.dll stdcall delayload'; procedure InitializeWizard(); var Name1: string; chan: integer; begin ExtractTemporaryFile('BASS.dll'); ExtractTemporaryFile('BASSMIDI.dll'); ExtractTemporaryFile('music.mid'); if BASS_Init(-1,44100,0, 0, 0) then begin BASS_Start(); Name1:=ExpandConstant('{tmp}\music.mid'); Chan := BASS_MIDI_StreamCreateFile(FALSE,PChar(Name1),0,0,BASS_SAMPLE_LOOP,0); if Chan <> 0 then begin BASS_ChannelPlay(chan, True); end; end; end; procedure DeInitializeSetup(); begin BASS_Stop(); //нужно для остановки проигрывания BASS_Free(); //нужно для быстрой выгрузки библиотеки вместе с муз. файлом end; |