Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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
2-1139411905
GoshaT
2006-02-08 18:18
2006.02.26
Изменить массив


11-1120737346
rOOse
2005-07-07 15:55
2006.02.26
TreeView


2-1139479329
chelovek
2006-02-09 13:02
2006.02.26
Завершение создания окна.


1-1138349420
MMM_corp
2006-01-27 11:10
2006.02.26
как приобщить мне FreeReport к BDS 2006


4-1133858901
SergeyRocker
2005-12-06 11:48
2006.02.26
Масштабирование Printer.Canvas налету





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский