Как воспроизвести файлы MP3 в C? - PullRequest
33 голосов
/ 09 января 2009

Я ищу самый простой способ воспроизвести файл MP3 на C. Я ищу либо библиотеку, в которой я мог бы просто вызвать функцию по имени файла, либо исполняемый файл, который просто запустится и закроется. Пожалуйста, предложите.

Ответы [ 10 ]

24 голосов
/ 09 января 2009

Используя FMOD (кроссплатформенный), это должно быть так просто:

#include <conio.h>
#include "inc/fmod.h"

FSOUND_SAMPLE* handle;

int main ()
{
   // init FMOD sound system
   FSOUND_Init (44100, 32, 0);

   // load and play mp3
   handle=FSOUND_Sample_Load (0,"my.mp3",0, 0, 0);
   FSOUND_PlaySound (0,handle);

   // wait until the users hits a key to end the app
   while (!_kbhit())
   {
   }

   // clean up
   FSOUND_Sample_Free (handle);
   FSOUND_Close();
}

В качестве примечания я бы предложил вам использовать C ++ вместо C.

5 голосов
/ 11 января 2009

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

Если вам нужно больше контроля, вам понадобится кодек (я предпочитаю libMad ) и некоторый API для вывода звука, например DirectSound в Windows, ALSA или Linux (или что-нибудь еще, кто использует Linux для звука на этой неделе)

3 голосов
/ 11 января 2009

На Win32 вам не нужна никакая библиотека. Используйте стандартный Win32 API (mp3 является родным)

См. На Adv. Win32 api группа новостей: Новости: //comp.os.ms-windows.programmer.win32 где это FAQ.

3 голосов
/ 09 января 2009

Я не знаю, является ли это "самым простым способом", но вы могли бы взглянуть на SDL (вместе с SDL_sound).

2 голосов
/ 09 января 2009

Если вы используете Windows или OSX, я рекомендую BASS (http://www.un4seen.com/bass.html)

Вы можете скачать библиотеку и посмотреть пример кода, чтобы начать. Пример «конкурса» в каталоге C - хорошая отправная точка.

1 голос
/ 09 января 2009

Если вы можете использовать C ++ и если вы работаете на платформе Windows, чем использовать WMp3

С этой библиотекой легко работать, и вы можете воспроизводить, приостанавливать и искать файлы mp3.

0 голосов
/ 26 февраля 2019

В основном вы можете использовать заголовочный файл windows.h

#include <windows.h>
void main()
{
    //replace music with your filename
    system("start music.mp3");
}
0 голосов
/ 20 мая 2013

иди сюда:

http://code4k.blogspot.com/2010/05/playing-mp3-in-c-using-plain-windows.html

На этом сайте есть почтовый индекс, в котором вы можете посмотреть, как этот человек сгенерировал код для mp3-плеера.

Вы также можете проверить: http://www.codeguru.com/cpp/g-m/directx/directshow/article.php/c19079/Simple-C-MP3-Player-Class.htm

или

http://www.ucancode.net/Visual_C_Control/Play-MP3-File-VC-Sample-Player.htm

0 голосов
/ 30 января 2009

mpg123 имеет общий удаленный интерфейс, доступ к которому вы можете получить, запустив исполняемый файл с параметром -R. Затем вы можете отправлять команды (такие как загрузка, пауза и т. Д.) По каналу fifo или в стандартный поток подпроцесса. Если ничего другого, то легко отлаживать и тестировать вручную.

0 голосов
/ 09 января 2009

альтернативно что-то, что кто-то уже написал, которое просто запустится и выйдет.

Вы можете использовать mpg123 (или его порт с фиксированной точкой, mpg321 )

mpg123 <mp3file>

проиграет файл mp3 и выйдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...