Bannan

Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: Подскажите пожалуйста как внедрить мр3 файл в инсталятор, чтоб играла музыка во время установки. | WiperX, пример сценария: Код: # MUI2 GUI - версия ANSI # В примере используется библиотека аудио BASS v2.3.0.3 # Поддерживаются форматы MP3, MP2, MP1, OGG, WAV, AIFF # Фоновое воспроизведение музыки во время работы инсталлятора # Используемые библиотеки !include "MUI2.nsh" !include "LogicLib.nsh" # Объявляем константы !define BASS_DLL "bass.dll" ; файл библиотеки аудио !define BASS_LOC "$PLUGINSDIR\${BASS_DLL}" !define MP3 "mymusic.ogg" ; файл аудио !define MP3_LOC "$PLUGINSDIR\${MP3}" # Параметры инсталлятора OutFile "Bass_MUI2_GUI_ANSI.exe" ShowInstDetails show XPStyle on # Страницы мастера установки !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH # Язык установки !insertmacro MUI_LANGUAGE "Russian" # Секция установки Section "My Program" ; необходимые файлы для установки SectionEnd # Функция инициализации инсталлятора Function .onInit ; Инициализация каталога плагинов InitPluginsDir SetOutPath $PLUGINSDIR ; Извлекаем файлы аудио и библиотеки BASS File "/oname=${MP3_LOC}" "${MP3}" File "/oname=${BASS_LOC}" "${BASS_DLL}" ; Выполняем инициализацию аудио устройства System::Call '${BASS_LOC}::BASS_Init(i -1,i 44100,i 0,i 0,i n) b.r0' ; Создаем файловый поток для воспроизведения ; Для версии Unicode второй параметр (путь и имя аудио файла) указывается через >m< ; Для версии ANSI (если Unicode=false) — второй параметр через >t< ; Для цикличного воспроизведения потока пятому параметру задаем значение 4 (BASS_SAMPLE_LOOP=4) ; В противном случае (проиграть один раз) задаем значение 0 System::Call '${BASS_LOC}::BASS_StreamCreateFile(b 0,t `${MP3_LOC}`,i 0,i 0,i 4) i.r1' ; Если файловый поток успешно создан (не равен 0), то... ${If} $1 != "0" ; Запускаем воспроизведение канала System::Call '${BASS_LOC}::BASS_ChannelPlay(i r1, b 0) i.R4' ; Устанавливаем громкость канала System::Call '${BASS_LOC}::BASS_SetVolume(i 70)' ; Если же при создании потока произошли ошибки, то... ${Else} ; Закрываем все существующие каналы воспроизведения и освобождаем системные ресурсы System::Call '${BASS_LOC}::BASS_Free()' ${EndIf} FunctionEnd # Функция выгрузки графической оболочки инсталлятора Function .onGUIEnd ; Останавливаем воспроизведение канала System::Call '${BASS_LOC}::BASS_ChannelStop(i r1)' ; Освобождаем системные ресурсы System::Call '${BASS_LOC}::BASS_StreamFree(i r1)' ; Закрываем все существующие каналы воспроизведения и освобождаем системные ресурсы System::Call '${BASS_LOC}::BASS_Free()' FunctionEnd | Работает только с библиотекой BASS v2.3.0.3 (архив). Со всеми последующими версиями - нет. | Всего записей: 538 | Зарегистр. 30-07-2011 | Отправлено: 13:07 24-05-2020 | Исправлено: Bannan, 14:10 24-05-2020 |
|