Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно
MKN MKN вне форума

Ветеран


Сообщения: 2355
Благодарности: 558

Профиль | Отправить PM | Цитировать


Воспроизведение MP3 файлов

MP3 можно проигрывать с помощью известного кода : http://nsis.sourceforge.net/Play_Sound
или с помощью bass.dll, что гораздо удобнее и более гибко (если знать вызов всех команд...)

Код: Выделить весь код
!define BASS_DLL "bass.dll"
!define BASS_LOC "$PLUGINSDIR\${BASS_DLL}"
!define MP3 "demo.mp3"
!define MP3_LOC "$PLUGINSDIR\demo.mp3"
; для зацикливания воспроизведения 
;!define BASS_SAMPLE_LOOP 4

OutFile "Bass_Test.exe"
Page instfiles

Function .onInit
  InitPluginsDir
  File "/oname=${MP3_LOC}" "${MP3}"
  File "/oname=${BASS_LOC}" "${BASS_DLL}"
FunctionEnd

Section
  FindWindow $0 "#32770" "" $HWNDPARENT 
  System::Call /NOUNLOAD '${BASS_LOC}::BASS_Init(i -1,i 44100,i 0,i r0,i n) b.r0'
  System::Call /NOUNLOAD '${BASS_LOC}::BASS_Start() b.r0'
  System::Call /NOUNLOAD '${BASS_LOC}::BASS_StreamCreateFile(b 0,t "$PLUGINSDIR\demo.mp3",i 0,i 0,i 0) i.r1' 
  ; для зацикливания воспроизведения 
  ;System::Call /NOUNLOAD "${BASS_LOC}::BASS_ChannelFlags(i r1, i ${BASS_SAMPLE_LOOP}, i ${BASS_SAMPLE_LOOP}) i.R0"
  System::Call /NOUNLOAD '${BASS_LOC}::BASS_ChannelPlay(i r1, b 0) i.R1'
SectionEnd

Function .onGUIEnd
  System::Call /NOUNLOAD "${BASS_LOC}::BASS_StreamFree(i) v (r1)"
  System::Call /NOUNLOAD "${BASS_LOC}::BASS_Stop() b () .r0"
FunctionEnd

Последний раз редактировалось MKN, 27-05-2020 в 16:17.

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:52, 17-12-2013 | #871