Форум: "Игры";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];
ВнизВоспроизведение музыки Найти похожие ветки
← →
boalse © (2005-08-13 11:04) [0]Нужно воспроизвести музыкальный файл, mp3 или ogg (Кстати, что такое ogg и лучше ли он mp3). Как это сделать при помощи API. Вообще, игру пишу на DelphiX, может там есть какие функции. Нужно иметь возможность регулировать громкость звука и определять, закончилось ли воспроизведение текущего звукового файла, или нет.
← →
DIMODIM (2005-08-13 13:54) [1]Лучше OGG потому что он В ГТА :-)
--
Звучит лучше и не каждый проигрыватель тянет OGG прикольный формат трек.
Трек который вести 3 метра играет 3мин7сек + новый ID3 tag со вкладкой OTHER
← →
ViK © (2005-08-13 14:06) [2]OGG - это новый формат конкурирующий с mp3.
Основные плюсы:
1) бесплатный
2) соотношение качество/размер лучше чем у mp3
У меня есть два примера работы с ogg, но они оба для C++. Первый с помощью mmsystem, а второй через OpenAL.
← →
Домовенок © (2005-08-13 14:31) [3]Самый простой и надежный способ воспроизвести *.ogg или *.mp3 это использовать bass.dll.
http://www.xakep.ru/magazine/xa/057/086/1.asp - здесь краткая, но понятная статейка "Пишем свой WinAmp в подарочной упаковке". На Delphi.
Единственный недостаток bass.dll - это что он платный для коммерческих проектов.
← →
boalse © (2005-08-13 14:40) [4]
> bass.dll.
Ещё до того, как написал сюда, наткнулся на эту штуку через поисковик, не понравилось то, что её нужно будет пихать в архив со своей программой, а потом инсталлировать куда-то в системный каталог.
> Первый с помощью mmsystem
Во-во, можно вот это глянуть?
← →
ViK © (2005-08-13 15:24) [5]
> Во-во, можно вот это глянуть?
http://gamemaker.webservis.ru/articles/mp3/mp3.htm
Сылка на исходник в самой статье.
Но думаю что в Delphi перенести этот код не сможешь: там используется несколько модулей аналогов которых в Delphi я не нашел.
← →
Antonn © (2005-08-13 15:55) [6]boalse © (13.08.05 14:40) [4]
Ещё до того, как написал сюда, наткнулся на эту штуку через поисковик, не понравилось то, что её нужно будет пихать в архив со своей программой, а потом инсталлировать куда-то в системный каталог.
инсталлировать? вроде достаточно держать в одном каталоге с программой...
← →
boalse © (2005-08-13 16:03) [7]
> вроде достаточно держать в одном каталоге с программой...
Ну незнаю, может напутал чего. В любом случае, мне нужны бесплатные способы.
← →
Antonn © (2005-08-13 16:11) [8]boalse © (13.08.05 16:03) [7]
для freeware бесплатно
← →
boalse © (2005-08-13 16:22) [9]
> для freeware бесплатно
Я шаровару пытаюсь сделать.
Чего-то не получается с примером. Просмотрел в делфи юнит MMSystem, там есть только функции
PlaySound; PlaySoundA;PlaySoundW;
sndPlaySound; sndPlaySoundA; sndPlaySoundW;
Эти штуки лишь с wav работают. Так как всёже воспроизводить mp3(ogg) в делфи?
← →
Antonn © (2005-08-13 16:55) [10]есть еще компонент TOGGPlayer, почти анология Бассу.
А как насчет плугинов ВинАмпа?
← →
XProger © (2005-08-13 19:33) [11]boalse, а waveOutWrite ты там не встречал? ;)
← →
ViK © (2005-08-13 20:09) [12]
> [11] XProger © (13.08.05 19:33)
А толку от этого? Самая большая проблема это раскодировать файл. Поэтому и создаются всякие библиотеки которые умеют это делать. А от человека требуется только вызвать функцию LoadOGG(...) или что-то в этом роде.
← →
WonderfulDay © (2005-08-13 22:03) [13]http://www.modplug.com/
http://www.milkmod.org/
- бесплатные звуковые движки.
Советую прочитать "Звук в играх. Технологии програмирования." автор Мэйсон МакКайси изд. "Кудиц-Образ". Книга решает все проблемы звука в играх и даёт ответы на большинство интересующих вопросов:)
← →
XProger © (2005-08-13 22:19) [14]ViK, человек просил функцию, я её дал. А про необходимость раскодирования я прекрасно знаю :)
← →
ViK © (2005-08-13 22:54) [15]
> [13] WonderfulDay © (13.08.05 22:03)
А в электронном виде эта книжка есть где нибудь?
> [14] XProger © (13.08.05 22:19)
Шутник ;)
← →
WonderfulDay © (2005-08-13 23:58) [16]>ViK
Не знаю, в бумаге читаю, а ещё к ней диск прилагается. 2004 года издание.
← →
boalse © (2005-08-14 06:41) [17]
> Antonn © (13.08.05 16:55) [10]
Нашёл TOGGPlayer, спасибо за подсказку. Не знаю, может у меня руки кривые или может он к Д7 не приспособлен, ещё попробую поковырять. Использовать Винамп не хотелось бы, ведь не у всех пользователей он есть, я, напремер его только в крайних случаях использую, в основном стандартный медиа-плеер устраивает.
← →
boalse © (2005-08-14 09:16) [18]Фууууууу, блин, ну наконец-то нашёл хоть что-то работающее.
http://www.compiler4.net/acs/download.html
Завелось с пол оборота, жаль, что не на API. Хотелось бы знать, как это на апях выглядеть будет, ну да ладно, пока так сойдёт.
← →
Antonn © (2005-08-14 12:14) [19]boalse © (14.08.05 6:41) [17]
Использовать Винамп не хотелось бы, ведь не у всех пользователей он есть,
дык я не говорил о самом ВинАмпе, а только о его in/out плугинах. TWinampPlayer вроде назывался.
← →
XProger © (2005-08-15 07:41) [20]boalse, Ну вот и ответ - MiniFMOD"ом воспроизвожу (http://XProger.mirgames.ru - XTropper)
← →
boalse © (2005-08-15 08:07) [21]Я правильно понимаю - xm файлы по качеству много хуже тех же mp3 или ogg, или же качество зависит от того, кто эти xm записывает?
← →
Zer0 © (2005-08-15 10:25) [22][21] boalse
Я правильно понимаю - xm файлы по качеству много хуже тех же mp3 или ogg
Неправильно понимаешь. знающие люди говорят что искусство писать хорошую музыку мало зависит от вида записи этой самой музыки. RTFM: http://en.wikipedia.org/wiki/Module_file http://en.wikipedia.org/wiki/Tracker
вобщемто xm файлы не записывают а сочиняют, это по сути не сжатые звуковые потоки а нотные записи с семплами-инструментами.
← →
Frost aka Freak (2005-08-15 11:17) [23]С помошью какого API ты собрался воспроизводить звук? Стандартными средствами Windows проиграть .ogg (оптимальный формат для разработчиков коммерческого/shareware софта, IMHO) не получится. Поэтому советую использовать OpenAL (для Delphi http://www.noeska.com/doal/default.aspx) от Creative. Бесплатно, очень просто и гарантированно поддерживается всеми карточками Creative и совместимыми. По сути - тот же звуковой API, хотя и не стандартный.
← →
boalse © (2005-08-22 06:13) [24]А есть примеры по работе с OpenAl на Delphi?
← →
XProger © (2005-08-22 06:52) [25]Frost aka Freak, после декодировки у тебя на руках будет буфер данных которые проиграет не только OpenAL и DSound, но и Win API (mmSystem)
← →
Frost aka Freak (2005-08-22 12:16) [26]2 boalse:
Внимательней посмотри мой предыдущий пост.
2XProger:
А декодировать ты чем собрался? Стандартный декодер .ogg в системе не присутствует, вроде
← →
MeF Dei Corvi © (2005-08-22 13:04) [27]
> Стандартный декодер .ogg в системе не присутствует, вроде
Декодер XVid и DivX тоже в стандартной поставке системы не присутствуют, но тем не менее лично у меня почти 100Гб фильмов в этих форматах...
Если OGG и дальше будет развиваться в том же духе, то MP3 долго жить не будет.
А декодер можно и с игрой поставлять...
← →
Frost aka Freak (2005-08-22 13:19) [28]2 MeF Dei Corvi:
Согласись, что если примириться с распространением вместе с игрой чего-то стороннего, то логичным было бы идти до конца и сразу встроить поддержку стороннего API в свою игру. Тем более, такого удобного, как OpenAL.
Если OGG и дальше будет развиваться в том же духе, то MP3 долго жить не будет
Ну, это маловероятно, потому что .ogg тоже не вчера появился, но широкого распространения так и не получил.
← →
MeF Dei Corvi © (2005-08-22 14:37) [29]
> Ну, это маловероятно, потому что .ogg тоже не вчера появился,
> но широкого распространения так и не получил.
Окончательно формат OGG определился совсем недавно, к тому же он бесплатный, так что при содействии геймдевелоперов может получить широкое распространение.
← →
MeF Dei Corvi © (2005-08-22 14:41) [30]Хотя, если подумать, то PNG так и не обошел GIF, даже не смотря на свою бесплатность... Так что mp3 рулит, на низком битрейте OGG звучит лучше, но в наше время никто не будет слушать музыку с битрейтом ниже 128.
← →
boalse © (2005-08-23 04:17) [31]Меня интересует регулировка громкости, не знаю как сделать. Искал в юните что-то вроде Volume - не нашёл и намёка. Вот тут:
http://delphimaster.net/view/9-1120637163/
наткнулся на функции alListenerf(AL_GAIN, GeneralVolume)
и AlSourcef ( source, AL_GAIN, 1.0 ), но куда их втыкать, так и не сообразил. Втыкать пробывал вот в этот пример:
http://www.delphigl.de/files/OpenAL_OggStream.zip
← →
boalse © (2005-08-23 06:00) [32]А всё оказалось просто :)
procedure TALForm.TrackBar1Change(Sender: TObject);
begin
alSourcef(OGGStream.source, AL_Gain, 1/(TrackBar1.Position*1.8));
end;
← →
XProger © (2005-08-23 07:58) [33]Что есть 1.8?
← →
boalse © (2005-08-23 08:51) [34]XProger, да не важно это, фигня. Изобретал я тут чего-то. Важно лишь что громкость от 0 до 1 меняется. отсюда и буду плясать
← →
Frost aka Freak (2005-08-23 12:17) [35]2 boalse:
Ты невнимательно читал мануал - там же написано
With AL_PITCH you can make the source sound higher.
With AL_GAIN you specify how loud the sound is played.
Какое слово ты не понял?
AL_GAIN меняет громкость, но не от 0 до 1, а от 0 и до упора :)
Еще раз пробегись по всему материалу http://www.noeska.com/doal/tutorials.aspx
← →
boalse © (2005-08-23 13:54) [36]
> Frost aka Freak
Большое спасибо, уже пробёг. Много интересного узнал. И ещё узнаю.
← →
boalse © (2005-09-01 06:05) [37]Никак не могу понять, как перемещаться по файлу, перепрыгнуть на середину, например. Помогите, пожалуйста, это последний вопрос в этой ветке.
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];
Память: 0.59 MB
Время: 0.061 c