Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > вывод mp3


Автор: Shishkin 11.6.2004, 15:36
Можно ли использовать вывод звука в формате mp3 ?

Автор: devmstr 11.6.2004, 16:40
Конечно, даже стандартный MediaPlayer это делает.
Добавлено @ 16:42
Если чё спрашивай, расскажу подробнее

Автор: Shishkin 11.6.2004, 17:18
А для этого нужно наверное специальные библиотеки использовать?

Если я не ошибаюсь, то стандартный медиаплейер может работать только с форматом wav,
а тут еще стоит проблема, что звук загружается около полсекунды, а нужно его мгновенное воспроизведение

Автор: z-END 12.6.2004, 10:09
Shishkin
1. Воспроизведение MP3 через стандартный МПлеер, поднимался на форуме, пользуйся поиском, эта тема уже со всех сторон рассмотрена.
2. по поводу мгновенного воспроизведения, попробуй при загрузке проги файл открыть, но не воспроизводить, а в нужный момент происто воспроизвести.
Добавлено @ 10:16
ЗЫ по поводу первого постаsmile.gif
Цитата
Можно ли использовать вывод звука в формате mp3 ?

мр3 это сжатый (с небольшими оговорками) WAVe файл, соответсвенно просто взять и воспроизвести его нельзя, а вот декодировать в WAVe и воспроизвести можно, что собственно все mp3 плееры и делают.
ЗЗЫ и вообще вывод звука возможен одним путем - аналоговым, т.к. пока еще научный прогресс недошел до цифровых колонокsmile.gif

Автор: Jey_k 12.6.2004, 10:30
Компонент MediaPlayer воспроизводит и MP3 и WAV.
Кидаем на форму вместе с OpenDialog и button.
и по нажатию кнопки

Код

if OpenDialog1.execute then
begin
  Mediaplayer1.FileName:=OpenDialog1.FileName;
  MediaPlayer1.Open;
end;


После этого подсветится кнопка Play на панели управления MediaPlayer.
Жамкаем и слушаем выбранный файл. Видео тоже воспроизводится. Все форматы, в зависимости от установленных кодеков.

Автор: MOZG 12.6.2004, 12:17
Если бы все было так просто. Проблема в том, что стандартный MediaPlayer воспроизводит звук не так, как это делают качественные mp3-плееры, а с искажениями. А вот как уж сделать так, чтобы не было глюков, я и сам не знаю. (Недавно делал игрень, так из 500 песен на моем винте нашел только 10, которые более-менее нормально играют через этот плеер)[color=orange][/color][size=6][/size]

Автор: Shishkin 12.6.2004, 12:37
А если различных звуков много(например 40), тогда для каждого нужно свой плейер заводить?

Автор: MOZG 12.6.2004, 13:06
Ну ели нужно выводить звуки, то проще использовать MessageBeep или PlaySound (Uses mmSystem).

Автор: Shishkin 12.6.2004, 13:23
А этот модуль уже установлен, или его нужно где-то качать?

Все, модуль прописал, компилятор ошибок не находит, однако не проигрывается звук.
Может быть чего-то не хватает в коде?

PlaySound('sounds/sound1.wav', 0, SND_MEMORY);

Автор: Jey_k 12.6.2004, 13:53
У меня работают все мп3 в стандартном компоненте MediaPlayer. Yjhvfkmyj dct djcghjbpdjlbncz

Автор: z-END 12.6.2004, 13:56
Может после Вынь98 mmSystem переделали, но в Win98 (Official Release) этот модуль работает напрямую с звуковой картой, все вытикающие отсюда последствия - см. http://forum.vingrad.ru/index.php?showtopic=24255
мож кто помнит такие сообщения Окошек, когда например включен WinPlayer и запускаешь еще один плеер: "MCI Error: указанное устройство, занято или использется" (ну или че-то в этом духе) так вот чтобы этого не происходило звук надо выводить через DirectSound...
у меня есть исходники для воспроизведения mp3 как раз через сие чудо.
Ща провереял на 40 звуков подряд делать было лень, но 8 пели одновременно + WinAMP.
Только в этом модуле есть один большой недостаток, в чем дело неразбирался но че-то с дискретизаций звука там неочень. Сюда выкладывать небуду (много места занимает), но если надо могу намылить...

Автор: Shishkin 12.6.2004, 14:26
А может быть я чего-то недописал ?
Я написал :

uses ... mmsystem;

....
PlaySound('sounds/sound1.wav', 0, SND_MEMORY);
....


Автор: Jey_k 13.6.2004, 21:23
nJIaKca.spb
Свойство Device компонента MediaPlayer устанавливается на AutoSelect и никаких MCI не будет.
Пробовал 95,98,Ме,ХР.
Все работает. Может не о том говорю, но это компонент, что на вкладке System валяется

Автор: z-END 13.6.2004, 22:38
Jey_k пример моей жизниsmile.gif у меня стоит SB 16 (помоему даже еще ISA а не PCI) но врать не буду, ну так вот при использовании двух MediaPlayer.Play второй начинал вопить как я писал выше, причем в XP пробемм не возникало, а в 98 были...
причем неважно че воспроизводить WAVE или mp3 (по тойже причине что я писал выше) 2 потока напрямую в звуковую карту не шли... а вот через DirectSound все великолепно работало...

ЗЫ может мой комп дикое исключение, но если такой вариант возможен (т.е. баги при воспроизвдении через MMSystem) то наверное имеет смысл использовать все-таки DirectSound, тем более что это не намного запарней того-же MediaPlayer'a

Автор: Jey_k 14.6.2004, 10:24
nJIaKca.spb
А дрова на карточку отсутствуют... Вынь 98 ставит минимальный стандарт-драйвер на неизвестные устройства а ХР родные. Поэтому в ХР все и работало.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)