Самый простой способ воспроизведения mp3 из Visual C ++ - PullRequest
6 голосов
/ 12 января 2010

Несколько лет назад я написал некоторую библиотеку утилит для DShow / DSound, чтобы позволить мне воспроизводить MP3 в приложении Windows C ++. Это все еще нормальный способ сделать это в приложении C ++ / MFC, или это область DirectX, которая была включена в общие API Windows?

Мотивация заключается в том, что мы просто используем стандартный метод Windows PlaySound для WAV и хотели бы иметь возможность проигрывать MP3-файлы, используя аналогично простой API, предоставляемый Windows или что-то, что мы пишем, чтобы обернуть более сложные функции.

РЕДАКТИРОВАТЬ: это для большого коммерческого проекта с закрытым исходным кодом. И мы хотим просто играть, просто заплатив много за библиотеку.

Ответы [ 6 ]

6 голосов
/ 12 января 2010

Вы можете использовать DirectShow, но он больше не является частью DirectX, или использовать стороннюю библиотеку, такую ​​как Bass , FMod , mpg123 или даже libwmp3 .

Если вы больше не хотите использовать DirectShow (но зачем менять, если ваш существующий код продолжает работать?), Вы можете использовать MCI :

mciSendString("open la_chenille.mp3 type mpegvideo alias song1", NULL, 0, 0); 
mciSendString("play song1", NULL, 0, 0);
mciSendString("close song1", NULL, 0, 0);
3 голосов
/ 20 января 2010

Это простой способ воспроизвести любой аудиофайл: http://msdn.microsoft.com/en-us/library/dd390090(VS.85).aspx

2 голосов
/ 22 августа 2017

PlaySound () изначально поддерживает MP3, если он встроен в файл WAV. Люди не понимают, что WAV является контейнерным форматом.

Загрузите утилиты ffmpeg для преобразования заголовка и сохранения кодека:

ffmpeg -i input.mp3 -c copy -f wav embedded_mp3.wav
2 голосов
/ 25 января 2010

Вы можете использовать функции окон MCI, https://msdn.microsoft.com/en-us/library/ms709626

Может воспроизводить многие аудио форматы, включая MP3, WAV, MIDI и т. Д.

Если я правильно помню, DirectX не требуется.

Функция PlaySound также может работать для вас.

0 голосов
/ 12 января 2010

Если вы не хотите платить какую-либо лицензию и хотите заниматься собственными силами, выполните синтаксический анализ вашего mp3-файла и передайте его в XAudio2. Это то, что вы можете сделать один раз (максимум 2-3 часа) и использовать всегда. : P

0 голосов
/ 12 января 2010

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

...