Как добавить в свою программу звук
Как добавить в свою программу звук
Как добавить в свою программу звук Но не просто добавить, а сделать так, чтобы он играл не из какого-то файла, а был вшит в .exe! И не просто звук, а чтобы это ещё и не сильно увеличивало размер программы! Вопросы трекерной музыки отложим на потом. Сейчас поговорим об mp3. Итак, наша задача - засунуть mp3 в нашу программу и заставить его воспроизводиться по команде. Для этого нам, разумеется, понадобится сам файл звука. Для тех кто не знает, как добавить его в ресурсы своей программы: Создаем текстовый файл с именем sounds.rc Прописываем в него наши файлы. Каждый файл в ресурсах - это своя строка. Пример содержимого файла: SND1 WAVE 1.wav SND2 WAVE Bum.wav SND3 WAVE Crazy.wav Первое слово - имя, которое мы будем указывать в программе. Второе - тип ресурса = wav файл Третье - имя файла. Сохраняем файл. Компилим его из командной строки: brcc32 sounds.rc В результате получаем скомпилированный файл - sounds.res. Второй этап: В программе подключаем этот файл: {$R sounds.res} Теперь для воспроизведения звука нужно просто дать команду: PlaySound('SND1', 0, SND_RESOURCE or SND_ASYNC); где первым параметром - имя, назначенное нами файлу в файле ресурсов. Предчувствую Ваше справедливое возмущение: "Как же так? Нам обещали mp3!" Третий этап: Открываем меню Пуск -> Программы -> стандартные -> Развлечения Запускаем "Звукозапись". У кого нет, можно доустановить через установку/удаление программ или воспользоваться другой программой подобного рода. Открываем наш wav файл: Меню -> Файл -> открыть. Теперь превратим его в mp3: Меню -> Файл -> Свойства Нажимаем кнопку "Конвертировать". Выбираем формат MP3 и нужное нам качество воспроизведения. Сохраняем: Меню -> Файл -> Сохранить. Все. Теперь внутри нашего wav файлика реально сидит MP3, который без проблем воспроизводится через PlaySound при наличии в системе установленного MP3 кодека. А данный кодек установлен во всех Windows после 2000-й по умолчанию. В более ранние, как правило, попадает вместе с другими программами или наборами кодеков. Да, остановить воспроизведение можно так: PlaySound(' ', 0, SND_RESOURCE or SND_ASYNC);