Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.26;
Скачать: CL | DM;

Вниз

Воспроизведение музыки   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.028 c
2-1139642458
RpO
2006-02-11 10:20
2006.02.26
Подскажите plz как мне считать из одного файла два столбца и кажд


1-1138116612
pasha_golub
2006-01-24 18:30
2006.02.26
Рисование растра в метафайл


3-1134057681
Tolyan
2005-12-08 19:01
2006.02.26
Lookup в TDBF


1-1138092276
Владислав
2006-01-24 11:44
2006.02.26
Хеш-функция.


2-1139347665
TimScorp
2006-02-08 00:27
2006.02.26
Поиск в БД