Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Воспроизведение mp3 файла [D5, D6, D7, WinXP]


Слава-22 ©   (2003-12-14 16:26:00) 

Помогите, плиз! Есть база данных где есть BLOB-поле. Так вот в нем хранится звуковой файл в mp3 формате. Вся проблема заключается в следующем: я создаю Stream методом CreateBlobStream в котором и находятся эти музыкальные данные, но вот как теперь воспроизвести это? (прошу учесть, что медиаплеер и PlaySound mp3 не воспроизводят)


Ne0z   (2003-12-15 18:30:00) [1]

Сам сталкивался с такой же проблемой, только у меня в базе были Midi'шки. Задавал этот вопрос (правда в форуме Базы), но ответа так и не получил.. Сначала хотел так: создать поток памяти и скопировать в него данные из Blob-потока
M:=TMemoryStream.Create;
      M.CopyFrom(B,B.Size) // B - твой Blob поток

Потом с помощью какой-нибудь библиотеки или компонента (например Bass.dll) проиграть данные из памяти.
Но потом подумал что будет много возни и сделал всё через временный файл. Т.е создаешь временный файл и сливаешь в него данные из базы, а потом проигрываешь MediaPlayer'ом. Но делать это лучше не в обработчике события DataChange(так как при перемещении по базе всё будет сильно тормозить), а при например при нажатии кнопки Play. Хотя и здесь возни будет достаточно.
Щас сам сижу осваиваю Bass, так что скоро может всё переделаю...


Наверх

Титульная страница Поиск, карта сайта Написать письмо