Показать сообщение отдельно
  #1  
Старый 14.09.2017, 22:57
AnatoliK AnatoliK вне форума
Прохожий
 
Регистрация: 11.09.2017
Сообщения: 9
Версия Delphi: Delphi 10 Lite
Репутация: 10
Вопрос Воспроизведение mp3 из памяти (bass.dll)

Здравствуйте уважаемые форумчане!

Снова нужна ваша помощь. И большое спасибо за помощь в прошлый раз.
У меня есть файл ресурсов который, я создал с помощью Restorator 2006. В него я поместил 3 mp3 файла, для простоты назвал 1.mp3, 2.mp3 и 3.mp3. Файл с ресурсами называется DataSound и имеет формат .res. Подключаю его так:
Код:
{$R DataSound.res}
Теперь немного отойду в сторону. Долго гуглил и искал как-же работать с bass.dll и вообще что-либо воспроизвести с помощью него (т.к. судя по поиску в гугле все хотят сразу сделать mp3 плеер мне их варианты не очень подходили потому, что они нацелены на воспроизведение файлов извне проекта). В итоге после долгих поисков и попыток я с горем пополам освоил запуск mp3 из папки с проектом:
Код:
procedure TForm1.FormCreate(Sender: TObject);

begin
      BASS_Init(-1, 44100, 0, handle, nil);
      BASS_Start;
end;

procedure TForm1.Button1Click(Sender: TObject);

begin
channel:=BASS_StreamCreateFile(false, pchar('11.mp3'), 0, 0, 0 );
bass_channelplay(channel,true);
end;
На просторах интернета вычитал, что в BASS_StreamCreateFile первый параметр означает откуда будет воспроизводиться файл, извне или из памяти, false и true соответственно. Пытался запустить файл из ресурса изменив false на true. Но что бы я не писал в названии ничего не воспроизводилось. Очевидно, что что-то делаю не так, а что не очень понимаю. Или где-то чего-то не дописал.

Когда делал другую (первую) программку, файлы были маленькие и их формат wav меня устраивал. Скомпилированный проект с ними весил 6 МБ, что я считаю приемлемым. А сейчас только один звуковой файл весит около 18 МБ в wav. А всего звуков будет около 25. Воспроизводил их так:
Код:
PlaySound('old_metalbeep',0,SND_ReSOURCE or SND_ASYNC);
Поэтому в итоге прошу Вас подсказать как-же запустить mp3 файл из памяти через bass.dll. О других возможностях не слышал. Т.к. mp3-плеер делать не собираюсь, то если вы знаете, как воспроизвести mp3 проще предлагайте Ваши варианты. Буду рад любой помощи.

P.S. Надеюсь, что ничего не реального не хочу и эта задача вполне выполнима, т.к. захламлять проект папкой с mp3 файлами не хотелось бы.
Ответить с цитированием