Недавно у меня появилась необходимость в одну программу, написанную на Delphi вставить фоновую музыку, причем сделать это так, чтоб сами музыкальные файлы хранились в самом исполняемом файле на выходе. В общем, порылся по сети Интернет как это сделать, инструкция в целом в сети одна, но ее много кто пытался переписать и в итоге толку мало. Эта инструкция мне не понравилась, и я решил написать свою, дабы может кто-то найдет её и она ему поможет решить ту проблему, перед которой стоял я. Поехали.
В общем, для простоты всех действий создайте папку в корневом каталоге локального диска, к примеру, на диске D создаем папку с названием «1». Кладем в эту папку необходимую музыку в формате Wave (Инструкция как сконвертировать MP3 в WAVE, если не умеете). См скриншот ниже.
После создаем файлик текстовый, куда прописываем все данные о музыкальных файлах, которые вы туда положили и сохраняем этот текстовый файл как <название файла>.rc (в общем, назвать как угодно можно на английском языке, главное чтоб расширение файла было .rc). В файле прописываем по правилу: <произвольное название музыкального файла (именно по этому названию вы будете его вызывать из программы)> WAVE (тип музыкального файла) <реальное название музыкального файла с расширением>. У меня вот что получилось в первой строке «complete WAVE complete.wav»
После этого (рекомендую использовать Total Commander) переходим в эту папку с файлами и в командной строке в нижней части окна total commander вписываем команду «cmd» и жмем Enter. Откроется окно командной строки, где сразу же прописан путь к директории где у нас все лежит. Нам остается только лишь прописать команду на запаковку наших файлов в файл ресурса. Вводим команду «brcc32.exe <имя файла .rc >», к примеру у меня получилось «brcc32.exe sound.rc». Жмем Enter.
Если все прошло успешно, то рядом должен появиться файл с расширением .RES. Вот так, ничего сложного, это вам не
Теперь кладем этот файл в папку вашего проекта Delphi и заходим в исходный код программы. В те формы, где необходимо будет использовать эту музыку, то пропишите в раздел implementation строку {$R sound.res}, чтоб подключить ваш файл ресурса.
Далее где вам надо будет использовать музыку из файла ресурса – просто впишите строку PlaySoundW('music', HInstance, SND_RESOURCE + SND_ASYNC + SND_LOOP); где у меня music это название одного из файлов в ресурсе, а атрибут SND_ASYNC отвечает за то, чтоб музыка играла без всякой остановки программы (обязателен если вы собрались вставить фоновую музыку). Если атрибут SND_ASYNC не использовать, то программа будет ждать когда файл проиграется и продолжит выполнять остальные операции. Атрибут SND_LOOP отвечает за то, что файл после проигрывания начнет проигрываться вновь и вновь, короче говоря это зацикливание.
Вот и все)