![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
проигрывать звуковой файл при старте [D6, Win95/98, WinME, Win2k, WinXP]
Alexis © (2003-12-24 19:39:00)Видел недавно одну прогу (только из одного exe-файла), при старте которой проигрывается музыка.Так вот вопрос-можно ли используя компонент Media Player каким-либо образом прикрепить mp3 файл к проге, чтобы потом mp3 с прогой не таскать, но mp3 проигрывался бы при старте.
Благодарю.
<Falcon> (2004-02-02 17:02:00) [1]На этом сайте есть статья, называется о хранении различной информации в ресурсах (помоему в разделе об играх), там есть непосредственно раздел о МР3 из ресурса.
>Желательно не использовать эти коды в FormShow, т.к пока не >проиграет музыка, ваше
>приложение не запустится. В случае если у вас длинный >музыкальный файл, то пока он не
>закончится прога не запустится, и вам прийдётся долго ждать.
Глупости, используйте SND_RESOURCE or SND_АSYNC и все. Просто если использовать SND_SYNC, то значение функции PlaySound возвращается только после завершения воспроизведения.
>Под Win9x не рекомендую решать эту проблему Ctrl-Alt-Del, комп >виснет моментально!
Тоже сильно сомневаюсь, у меня например все работает и без проблем на любой платформе.
Теперь, при использовании sndPlaySound Вам необходимо самому следить за освобождением и загрузкой ресурсов, иначе чревато утечками памяти.
ZDima (2003-12-29 10:24:00) [2]Ясно, что пр3-ху нужно запихивать в ресурсы - это легко(brcc32.exe...)
Но вот как её играть из ресурсов, я не знаю (знаю как wav, а mp3 не знаю). В этом и есть главный вопрос, на который, я был бы рад получить ответ.
Intell (2003-12-27 23:18:00) [3]Вообще в моём примере можно только вшивать в ресурс WAV. С примером Stexen я не разбирался. Для меня это ново - вшивать MP3 в exe.
Alexis (2003-12-27 14:27:00) [4]При реализации предложенной Intell'ом исполняемый файл, как я понимаю будет весить больше ровно на размер mp3'шки ?
Intell (2003-12-27 14:19:00) [5]чтобы прокрутить звук без плеера
нужно использовать ф-цию api
в USES добавляете MMSYSTEM
PlaySound('c:\....\*.wav',0,SND_FILENAME)
------------------------------------------------------------------------------
sndPlaySound('c:\....\*.wav', SND_FILENAME or SND_SYNC)
------------------------------------------------------------------------------
implementation
{$R *.DFM}
{$R snddata.res}
PlaySound('c:\....\*', hInstance, SND_RESOURCE or SND_SYNC)
Желательно не использовать эти коды в FormShow, т.к пока не проиграет музыка, ваше
приложение не запустится. В случае если у вас длинный музыкальный файл, то пока он не
закончится прога не запустится, и вам прийдётся долго ждать.
Под Win9x не рекомендую решать эту проблему Ctrl-Alt-Del, комп виснет моментально!
Лучший пример:
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
const
Flags = SND_RESOURCE or SND_ASYNC;
implementation
procedure TForm1.Button1Click(Sender: TObject);
begin
PlaySound('Click',0,flags);
end;
//Причём файл вшит в ресурс
Я думаю как вшить файл в ресурс вы знаете?
Stexen (2003-12-26 23:46:00) [6]Вообще-то можно записать в ресурсы проги по теории при запуске затем их считать и все...Ну можно способо для наркоманов еще: пишешь еще одно программу которая будет дописывать в конец твоего екзешника тот самый мп3 который тебе надо воспроизводить, потом в программе дописываешь процедуру которая будет считывать с опр точки X (=концу екзешника без мптрихи) мп3иху...затем все компилишь причем задай значение X допустим 0<N<|приблизительный размер|, затем компилишь смотришь размер екзешника, меняешь значение X на значение=размеру екзешника, затем опять все компилишь дописываешь другой прогой на конец екзешника мптриху и все работает...Работает потому что PE формат не проверяет целостность файла... всмысле размер... плюс есть тот что трудно будет найти ту самую мптриху плюс если все закодируешь и упакуешь то вообще ненайдут... вот ну это так извращенство...лучше используй первый способ