2015-04-17 4 views
0

Я пишу программу, которая в какой-то момент загружает MP3 и сохраняет его в массив байтов. Затем я создаю Stream из байтов.Как играть в MP3 из потока с помощью DirectSound

Не знаете, как играть в Стрим. Я не хочу использовать DLL, кроме DirectSound.

Есть ли лучшие способы играть в Стрим? (не другая dll)

Если да, то как? А если нет, как играть в Stream DirectSound?

+2

Я был бы очень удивлен, если DirectSound может воспроизводить MP3. Вам понадобится что-то, чтобы преобразовать MP3 в поток, который может обрабатывать DirectSound. –

+0

https://social.msdn.microsoft.com/Forums/en-US/b38936aa-da3a-4deb-8cf2-a890e89ac674/how-do-you-play-mp3s-in-directsound?forum=gametechnologiesdirectx101 - это MSDN ссылка, которая поддерживает мой комментарий –

+0

@MichaelCoxon Итак, какой подход вы рекомендуете? Для этого должен быть стандартный/общий способ. Я работал с DirectShow раньше (на VB6), и он отлично работал с MP3-файлами из файлов. Что вы думаете об использовании DirectShow? –

ответ

0

Кажется, что это невозможно. См. Цитату из аналогичного кода MSDN forum post:

Raw DirectSound не способен воспроизводить аудиофайлы в формате mp3. Я рекомендую использовать DirectShow для этой цели, поскольку он поддерживает самые разные форматы. Вы также можете использовать потоковый буфер dsound и самостоятельно выполнять декомпрессию, но это, вероятно, будет чрезмерным в вашей ситуации.

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

Mp3 не является бесплатным, поэтому вы будете бороться за него без участия третьей стороны и даже не рекомендуется.

+0

Не стоит беспокоиться о свободе роялти - в Windows есть декодер акций. Однако DirectSound не будет распаковываться самостоятельно и не будет принимать raw MP3, поэтому это должно быть разрешено с помощью других API. –

+0

@ daniel-casserly К сожалению, я не могу использовать другие форматы. Мое приложение загружает 30 секунд MP3 через Spotify web API, поэтому я ничего не могу с этим поделать. –

+0

@ RomanR. Какие другие API, как вы думаете, будут работать для меня? Я использовал DirectShow раньше (с VB6) в файлах MP3. Будет ли это работать с потоками? –

 Смежные вопросы

  • Нет связанных вопросов^_^