Статья о том как вставить музыку в программу написанную на Delphi

Недавно у меня появилась необходимость в одну программу, написанную на Delphi вставить фоновую музыку, причем сделать это так, чтоб сами музыкальные файлы хранились в самом исполняемом файле на выходе. В общем, порылся по сети Интернет как это сделать, инструкция в целом в сети одна, но ее много кто пытался переписать и в итоге толку мало. Эта инструкция мне не понравилась, и я решил написать свою, дабы может кто-то найдет её и она ему поможет решить ту проблему, перед которой стоял я. Поехали.

В общем, для простоты всех действий создайте папку в корневом каталоге локального диска, к примеру, на диске D создаем папку с названием «1». Кладем в эту папку необходимую музыку в формате Wave (Инструкция как сконвертировать MP3 в WAVE, если не умеете). См скриншот ниже.

sshot-1

После создаем файлик текстовый, куда прописываем все данные о музыкальных файлах, которые вы туда положили и сохраняем этот текстовый файл как <название файла>.rc (в общем, назвать как угодно можно на английском языке, главное чтоб расширение файла было .rc). В файле прописываем по правилу: <произвольное название музыкального файла (именно по этому названию вы будете его вызывать из программы)> WAVE (тип музыкального файла) <реальное название музыкального файла с расширением>. У меня вот что получилось в первой строке «complete WAVE complete.wav»

sshot-2

 

После этого (рекомендую использовать Total Commander) переходим в эту папку с файлами и в командной строке в нижней части окна total commander вписываем команду «cmd» и жмем Enter. Откроется окно командной строки, где сразу же прописан путь к директории где у нас все лежит. Нам остается только лишь прописать команду на запаковку наших файлов в файл ресурса. Вводим команду «brcc32.exe <имя файла .rc >», к примеру у меня получилось «brcc32.exe  sound.rc». Жмем Enter.

sshot-3

 

sshot-4sshot-5

Если все прошло успешно, то рядом должен появиться файл с расширением .RES. Вот так, ничего сложного, это вам не украшение зала на свадьбу шарами делать.

 

Теперь кладем этот файл в папку вашего проекта Delphi и заходим в исходный код программы. В те формы, где необходимо будет использовать эту музыку, то пропишите в раздел implementation строку {$R sound.res}, чтоб подключить ваш файл ресурса.

sshot-7

Далее где вам надо будет использовать музыку из файла ресурса – просто впишите строку PlaySoundW('music', HInstance, SND_RESOURCE + SND_ASYNC + SND_LOOP); где у меня music это название одного из файлов в ресурсе, а атрибут SND_ASYNC отвечает за то, чтоб музыка играла без всякой остановки программы (обязателен если вы собрались вставить фоновую музыку). Если атрибут SND_ASYNC не использовать, то программа будет ждать когда файл проиграется и продолжит выполнять остальные операции. Атрибут SND_LOOP отвечает за то, что файл после проигрывания начнет проигрываться вновь и вновь, короче говоря это зацикливание.

sshot-6

Вот и все)

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: