![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Звуковое сопровождение [Delphi, Windows]
Stals © (2006-07-29 09:58:00)Какой самый экономичный способ сделать звуковое сопровождение программы,
проигрывая бесконечно какой-нибудь MP3 или даже MP3-PRO файл? (Ну или даже вообще MIDI)
mdw (2006-08-09 16:00:00) [1]
> Изменить расширение *.mp3-файла с .mp3 на .wav или что?
Не. Нужно создать именно жатый Wav.
Например так:
Запускаем Adobe Audition (Cool edit).
Нажимаем SaveAs.
Выбираем тип сжатия "ACM WaveForm"
Нажимаем "Options"
Выбираем Filter "MPEG Layer-3", или другое - там их много.
Выбираем нужные аттрибуты сжатия.
Галочку "Write as RAW data", кажется, не нужно.
Нажимаем "Ок"
Нажимаем "Save"
Все. Счастье.
Adobe Audition - это для примера можно чем нибудь другим, WavLab например. Может и виндах что-то есть, не знаю. Просто и на досуге, иногда, занимаюсь сведением, поэтому пяток редакторов всегда стоит.
ANTPro (2006-08-08 22:06:00) [2]Почему-то не хочет воспроизводить с MPEG layer3 (mp3) сжатием, хотя AC-3 ACM Codec(Держит много канальность) пошел нормально (Конвертил Winamp'ом)
Жаль нет подержки AAC или MP4
Stals (2006-08-08 21:26:00) [3]
> Насчет mp3, я не правильно выразился. Нужно создать Wav
> с MPEG layer3 (mp3) сжатием (или другим, какое нравится),
> тогда будет играть.
В смысле?
Изменить расширение *.mp3-файла с . mp3на .wavили что?
mdw (2006-08-08 11:56:00) [4]
> Stals
Можно проще, таймер не нужен. В Вашем случае:
PlaySound('c:\123.wav', 0, SND_FILENAME or SND_LOOP or SND_ASYNC);
Насчет mp3, я не правильно выразился. Нужно создать Wav с MPEG layer3 (mp3) сжатием (или другим, какое нравится), тогда будет играть.
Stals (2006-08-07 21:04:00) [5]2 Thaddy :
I will test it, but i think that MMSystem and PlaySound - more economic :)
What size of the program, if compile with kolacmwaveplayer?
Stals (2006-08-07 21:01:00) [6]2 mdw :
Да, если использовать PlaySound, то зацикливание получается ровным,
только у меня почему-то только wav играет, что нужно исправить?
(Похоже это то, что я и хотел - минимальный размер + возможность играть из потока или ресурсов)
program Project1;
uses
windows, messages, mmsystem, kol;
var
form : PControl;
tm : PTimer;
procedure TimerProc( Dummy : Pointer; Sender: PControl );
begin
PlaySound('c:\123.wav',0,SND_ASYNC);
end;
begin
PlaySound('c:\123.wav',0,SND_ASYNC);
// время wav-файла
tm:=NewTimer(3428);
tm.OnTimer:=TOnEvent(MakeMethod( nil, TimerProc));
tm.Enabled:=true;
form:=NewForm(Applet,'MusicForm');
run(form);
end.
Сие компилится в 14.336 kb с заменой системных модулей не считая размера звукового файла...
Короче получается, что нахаляву - а это именно то, что мне нужно :) Осталось только вот mp3 сделать и будет просто сказка.
MP3-кодаки есть практически у всех, так что проблемы со звуком будут только у "совсем великих людей" :)
Stals (2006-08-07 19:33:00) [7]2 D[u]fa:
Ага, уже разобрался, просто написал -
mciSendString('PLAY :\qq.mp3',0,0,0);
Но тут есть одна такая хреновая особенность - если играть по циклу - например, по таймеру, то между воспроизведениями происходит задержка, так что не получается постоянного звучания... :(
Thaddy (2006-08-03 15:05:00) [8]You can also use http://members.chello.nl/t.koning8/kolacmwaveplayer.zip
Which uses the ACM codecs for mp3 and mp3 pro when installed.
The other source by me has its own full mp3 codec, but does not support any other formats.
mdw (2006-08-03 09:54:00) [9]Есть еще функция PlaySound\sndPlaySound. Wav-ки она тоже играет, ну и mp3 если кодаки установлены (wk2, xp). Плюс в том, что может проигрывать ресурсы или буфер памяти, т.е. отдельный файл создавать не обязательно.
Кстати, а чем KOLMediaPlayer не устроил? Он и Midi и Wav играет.
Еще я как-то делал Midi плеер, он сам команды на зв. устройство шлет, поэтому проигрывать умеет из памяти.
D[u]fa (2006-08-03 08:05:00) [10]uses
MMSystem;
procedure SendMCICommand(Cmd: string);
var
RetVal: Integer;
ErrMsg: array[0..254] of char;
begin
RetVal := mciSendString(PChar(Cmd), nil, 0, 0);
if RetVal <> 0 then
begin
mciGetErrorString(RetVal, ErrMsg, 255);
MessageDlg(StrPas(ErrMsg), mtError, [mbOK], 0);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SendMCICommand('open waveaudio shareable');
SendMCICommand('play "C:\xyz\BackgroundMusic.wav"');
SendMCICommand('play "C:\xyz\AnotherMusic.wav"');
SendMCICommand('close waveaudio');
end;
вот такой примерчик нашел
Stals (2006-08-02 22:04:00) [11]2 ANTPro: Неплохо, размер пустой скомпиленной проги - 138 kb не считая самого звукового файла.
2 D[u]fa: Что-то у меня MSDN какой-то урезаный, есть примерчик?
D[u]fa (2006-07-30 20:28:00) [12]MMSystem модуль mciSendString API, в MSDN описалово есть
ANTPro (2006-07-30 19:37:00) [13]KOLMP3 автор Thaddy de Koning
http://bonanzas.rinet.ru/KOLMP3.ZIP
Где-то у меня еще модуль к WAV валялся
Stals (2006-07-30 12:34:00) [14]Размера программы... (размер программы + размер звукового файла)
Просто нужно пустить фоном зацикленный файл (в идеале MP3Pro или MIDI)
Какую можно использовать библиотеку-компонент, чтобы добиться минимального размера?
ANTPro (2006-07-29 20:17:00) [15]Stals © (29.07.06 9:58)
Зкономия чего