web-dev-qa-db-fra.com

Comment lire des fichiers MP3 en C?

Je cherche le moyen le plus facile de lire un fichier MP3 en C. Je cherche soit une bibliothèque, dans laquelle je pourrais simplement appeler la fonction sur le nom du fichier, soit un exécutable qui va simplement s’exécuter. Veuillez suggérer.

32
Sam

En utilisant FMOD (multiplateforme), cela devrait être aussi simple que cela:

#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();
}

En remarque, je vous suggérerais d'utiliser C++ sur C.

23
Gabriele D'Antona

Le BASS DLL est vraiment facile à utiliser et fera probablement ce dont vous avez besoin. Cependant, il n’est gratuit que pour un usage non commercial.

Si vous avez besoin de plus de contrôle, vous aurez besoin d'un codec (je préfère libMad ) et de certaines API de sortie audio telles que DirectSound sous Windows, ALSA ou Linux (ou tout ce que les gars Linux utilisent pour le son cette semaine).

5
Tamas Czinege

Sous Win32, vous n’avez besoin d’aucune bibliothèque . Utilisez l’API Win32 standard (mp3 est natif)

Voir sur Adv. Groupe de discussion api Win32: News: //comp.os.ms-windows.programmer.win32where est une FAQ.

3
Derreck

Je ne sais pas si c'est "le moyen le plus simple", mais vous pouvez jeter un coup d'œil à SDL (avec SDL_sound).

3
Guishu

Si vous êtes sous Windows ou OSX, je recommande BASS ( http://www.un4seen.com/bass.html )

Vous pouvez télécharger la bibliothèque et consulter un exemple de code pour commencer. L’exemple "contest" dans le répertoire C est un bon point de départ.

2
Gant

Si vous pouvez utiliser C++ et si vous travaillez sur une plate-forme Windows, utilisez WMp3

Cette bibliothèque est facile à utiliser et vous permet de lire, de mettre en pause, de rechercher des fichiers mp3.

1
Lav

sinon, il y a quelque chose de déjà écrit que quelqu'un va exécuter et arrêter.

Vous pouvez utiliser mpg123 (ou son port de point fixe, mpg321 )

mpg123 <mp3file>

va jouer un fichier mp3 et quitter.

0
codelogic
0
user1005856

mpg123 a une interface distante générique à laquelle vous accédez en démarrant l’exécutable avec l’option -R. Vous pouvez ensuite envoyer des commandes (telles que charger, mettre en pause, etc.) sur un fifo pipe ou sur stdin du sous-processus. Si rien d'autre, il est facile de déboguer et de tester manuellement.

0
Hank

En gros, vous pouvez utiliser le fichier d'en-tête windows.h

#include <windows.h>
void main()
{
    //replace music with your filename
    system("start music.mp3");
}
0
I AM THE BEST