|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Музыка в EXE файле
Всех с наступившим !!!
Кто подскажет , кто расскажет, кто покажет ? В проэкте используется музыка , которая воспроизводиться компонентом MediaPlayer при открытии формы, вот только проблема файл EXE запущенный на другом компе не запускается , если убрать воспроизведение, то идет без проблем, как сделать такчтоб файл с музыкой находился в EXE шнике? Поискал на форуме , была одна тема да только совет данный там не работал... |
#2
|
|||
|
|||
Варианты:
1. Просто класть муз. файл рядом с ехе и использовать относительные пути к нему. 2. Класть в ресурсы, при запуске вытаскивать оттуда и проигрывать. Первый проще, второй - красивее. |
#3
|
|||
|
|||
пробовал в ресурсы, не получалось, может не так делал?
|
#4
|
||||
|
||||
Если ты хочешь воспроизвести wav звук через mmSystem то учти, что он должен быть несжатый.
Просто через PlaySound() проигрывается? ...сказал, и загрустил от бесспорной своей правоты |
#5
|
|||
|
|||
Делал все как описанно ниже:
Итак, наша задача засунуть mp3 в нашу программу и заставить его воспроизводиться по комманде. Для этого нам, разумеется, понадобится сам файл. Для тех кто не знает, как добавить его в ресурсы своей программы: Создаем текстовый файл с именем sounds.rc Прописываем в него наши файлы. Каждый файл в ресурсах = 1 строке. Пример содержимого файла: 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); , где первым параметром - имя, назначенное нами файлу в файле ресурсов но не понял там одного: -Компилим его из коммандной строки: brcc32 sounds.rc Делал ,но он говорит чтоэтот файл не является приложением |
#6
|
||||
|
||||
В папке delphi X\bin есть brcc32.exe просто перетащи на него свой rc файл.
Обрати внимание, рябом с sounds.rc должен появиться sounds.res иначе ты что то неправильно сделал. А еще лучшее в реестре настрой ассоциации. Насчет WAVE не уверен попробуй еще RCDATA. ...сказал, и загрустил от бесспорной своей правоты Последний раз редактировалось 0nni, 04.01.2009 в 18:06. |
#7
|
|||
|
|||
Цитата:
- "идет без проблем" куда (или что)? - На другом компе может быть не установлен декодер mp3. Не забывайте делать резервные копии |
#8
|
|||
|
|||
немогу найти файл ни в ручную ни через поиск brcc32.exe его нет в системе
|
#9
|
||||
|
||||
Как вариант - использование оверлея.
Хорошо написанная программа не требует документации ICQ 9-184-668. |
#10
|
||||
|
||||
Правильно, как предложил Thrasher, можно использовать оверлей, так же можно и использовать так называемую трекерную музыку, это как в кейгенах, на delphilab есть целая статья с исходниками как добавить музыку, как ее проиграть и прочее.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#11
|
|||
|
|||
Цитата:
Нашел скомпилил, вставил, при компиляции он выдал: [DCC Warning] Dor.pas(41): W1035 Return value of function 'TForm1.PlaySound' might be undefined [DCC Error] E1026 File not found: 'sounds.res' Вот код , как вставлял: Код:
unit Dor; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, jpeg, ExtCtrls, StdCtrls, MPlayer,mmsystem; type TForm1 = class(TForm) Image1: TImage; Label1: TLabel; Label2: TLabel; MediaPlayer1: TMediaPlayer; procedure Label1Click(Sender: TObject); procedure Label2Click(Sender: TObject); procedure FormActivate(Sender: TObject); function PlaySound(pszSound:PChar; hmod:HINST; fdwSound:Cardinal):boolean; private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses name,shcool; var A:integer; {$R *.dfm} {$R sounds.res} function TForm1.PlaySound(pszSound: PChar; hmod: HINST; fdwSound: Cardinal): boolean; begin PlaySound('Doraemon', 0, SND_RESOURCE or SND_ASYNC); end; procedure TForm1.FormActivate(Sender: TObject); begin PlaySound('Doraemon', 0, SND_RESOURCE or SND_ASYNC); end; |