Несколько лет назад, я записал некоторую util библиотеку вокруг DShow/DSound, чтобы позволить мне играть MP3s в Windows C ++ application. Это - все еще нормальный способ сделать это в C++ / приложение MFC, или это - область DirectX, который был включен в категорию в общий Windows APIs?
Мотивация, просто мы используем стандартный метод Windows PlaySound для WAVs и хотели бы смочь играть MP3s с помощью столь же простого API, или обеспеченного Windows или чем-то, что мы пишем для обертывания более сложной функциональности.
Править: это для большого, коммерческого, проекта с закрытым исходным кодом. И мы только хотим играть вещи просто, оплачивание много библиотеки не полетит.
Вы могли бы взглянуть на бас . Это простое в использовании аудио библиотека, бесплатно для некоммерческого использования.
Вы можете либо использовать 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);
Если вы не хотите платить какую-либо лицензию и хотеть сделать внутренний, сделайте парсинг своего mp3 файла и передайте ее XAudio2. Это - вещь, которую можно сделать однажды (2-3 часа в макс.) и всегда использовать. :P
Это простой способ воспроизведения любого аудиофайла: http://msdn.microsoft.com/en-us/library/dd390090 (vs.85) .aspx
Youc может использовать функции Windows MCI, https://msdn.microsoft.com/rudn.microsoft.com/en-us/library/ms709626
Он может воспроизводить много форматов аудиофайлов, включая MP3, WAV, MIDI и т. Д.
, если я правильно вспомню, это не требует DirectX.
Функция Playsound может также работать для вас.