Модераторы: Snowy, Alexeis, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> КАК ПРОИГРАТЬ MP3 ИЗ РЕСУРСА? Не сохраняя файл на диск!!! 
:(
    Опции темы
Kostya-xp
Дата 13.1.2005, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 11.8.2004
Где: Россия

Репутация: нет
Всего: нет



smile
PM MAIL   Вверх
Snowy
Дата 14.1.2005, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



А с несжатым файлом пробовал? Может и несжатый играть не будет? Тогда тут другие грабли.
Может попробовать загрусить файл в память и играть не из ресурса, а из памяти?
PM MAIL   Вверх
Illusion Dolphin
Дата 14.1.2005, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 13
Всего: 63



Ну что? Никто не знает smile? Ладно, придётся объяснять...
1) Копируем библиотеку http://trackers.pp.ru/soft/util/bassdll.zip
2) Копируем архив
http://www.un4seen.co.uk/files/bass17.zip
И из последнего копируем себе файлик BASS.pas
3) ложим в папку с прогой библиотеку, подключаем себе этот модуль.
4) подключаем файл ресурсов, у меня ЧИСТЫЙ mp3 (без извращений) нажодился в \mp3\mp3
5) Пишем в делфе:

Код

procedure TForm1.Button2Click(Sender: TObject);
var
Res:TResourceStream;
m : Tmemorystream;
b:string;
begin
if not BASS_Init(-1, 44100, 0, handle) then begin
  Error('Could not initialize BASS');
  Exit;
end;
// start BASS
if not BASS_Start then begin
  Error('Could not start the BASS output');
  Exit;
end;
Res:=TResourceStream.Create(Hinstance,'MP3','MP3');
Res.Seek(0,soFromBeginning);
setlength(b,Res.size);
Res.ReadBuffer(b[1],Res.size);
m := Tmemorystream.Create;
m.Write(b[1],Res.size);
m.Seek(0,soFromBeginning);
SineStream:=BASS_StreamCreateFile(true, m.Memory,0,m.Size,0);
if (SineStream = 0) then begin
 Error('Could not create user stream');
 Exit;
end;
if not BASS_StreamPlay(SineStream, FALSE, 0) then begin
 Error('Could not start stream playback');
 Exit;
end;
end;


P.S. За освобождением памяти следите уж как-нибудь сами, т.к. это не суть сабжа, а я пока искал всё это уже замучался smile

FIN


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
Snowy
Дата 14.1.2005, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



В данном случае придется еще и BASS с собой таскать (кстати он уже версии 2.1)
PlaySound в данном случае удобней, но есть зависимость от кодека.
Интересно, а можно ли так извернуться, чтобы еще и BASS.dll запихать в ресурс и оттуда его юзать? smile Теоретически да, но...
PM MAIL   Вверх
Illusion Dolphin
Дата 14.1.2005, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 13
Всего: 63



Цитата

В данном случае придется еще и BASS с собой таскать

Смотри первый пост.

Цитата

но есть зависимость от кодека

уже нет smile

Цитата

Интересно, а можно ли так извернуться, чтобы еще и BASS.dll запихать в ресурс и оттуда его юзать?

Можно туда засунуть и при необходимости "инсталить" в систему, но напрямую без сохванения на диск вроде как не получится.

Это сообщение отредактировал(а) Illusion Dolphin - 14.1.2005, 16:29


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
Kostya-xp
Дата 14.1.2005, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 11.8.2004
Где: Россия

Репутация: нет
Всего: нет



Snowy
Не сжатый файл играет спокойно.

Illusion Dolphin
Спасибо за пример. smile Сейчас попробую поюзать...

Это сообщение отредактировал(а) Kostya-xp - 14.1.2005, 17:42
PM MAIL   Вверх
Kostya-xp
Дата 14.1.2005, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 11.8.2004
Где: Россия

Репутация: нет
Всего: нет



Illusion Dolphin
Все сделал, Ошибки таковы:

[Error] Unit1.pas(56): Undeclared identifier: 'SineStream'
[Error] Unit1.pas(58): Missing operator or semicolon {(это к Error)}
возникла парочка вопросов:

Я задал SineStream по типу DWORD.

Осталось определиться с Error


Если не трудно, ты бы не мог кинуть рабочий пример, без самого mp3 конечно?

P.S. Да это не sndPlaySound… smile

Это сообщение отредактировал(а) Kostya-xp - 14.1.2005, 18:52
PM MAIL   Вверх
Illusion Dolphin
Дата 14.1.2005, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 13
Всего: 63



Код

var
SineStream: HSTREAM;

Прогу прилагаю.

Присоединённый файл ( Кол-во скачиваний: 57 )
Присоединённый файл  st.zip


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
Kostya-xp
Дата 15.1.2005, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 11.8.2004
Где: Россия

Репутация: нет
Всего: нет



Illusion Dolphin
По поводу примера:
А можно ли использовать что-то другое, а не
Код

sleep(5000);

Чтобы приложение не засыпало smile

Это сообщение отредактировал(а) Kostya-xp - 15.1.2005, 16:36
PM MAIL   Вверх
Illusion Dolphin
Дата 15.1.2005, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 13
Всего: 63



Я sleep использовал только из-за того, что демо-программа была неоконной, а звук играется асинхронно. Если у тебя есть любое окно, то тогда тебе sleep использовать совсем не нужно.


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
Kostya-xp
Дата 15.1.2005, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 11.8.2004
Где: Россия

Репутация: нет
Всего: нет



Illusion Dolphin
Все это я уже совсем запрограммировался ...smile
smile Все работает. Огромное спасибо за помощь. smile smile

Это сообщение отредактировал(а) Kostya-xp - 15.1.2005, 18:48
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0777 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.