J’ai passé toute la journée à ça et ça me rend fou
Est-ce que quelqu’un connaît un moyen simple de décoder un mp3 en un simple fichier pcm (wave) 16 bits? J’ai besoin de quelque chose que je peux expédier avec mon programme commercial, donc je préfère un .lib
J’ai trouvé libmpg123.dll, mais je ne vois pas comment faire en sorte que mon programme soit lié à une dll dans msvc 2010. Je sais que je dois append une référence, mais lorsque je clique sur “append une nouvelle référence”, tout ce que j’ai est un dialog vide avec nom de projet et en-tête de répertoire de projet et rien à cliquer. J’ai essayé de convertir .dll en .lib en utilisant l’outil lib mais cela n’arrête pas de me plaindre car le format de fichier .def est mauvais.
J’ai essayé de construire madplayer mais je ne peux pas trouver id3tag.h et il n’y a pas de documentation ou d’exemples d’utilisation de libmad que je puisse trouver
Lame a l’air trop énorme
Toutes les idées pour une solution rapide pour un .lib je peux créer un lien avec et être fait avec elle
Merci, steve
mpg123 est bien. Je peux voir que vous avez des problèmes pour obtenir une bibliothèque statique (.lib).
Il y a 2 façons d’obtenir la lib:
Utilisez l’outil lib en convertissant le fichier .def. Vous n’avez pas besoin de sources car les packages binarys contiennent déjà les fichiers .h et .def. Je vais expliquer en détails:
D:\mpg123
. cd D:\mpg123
, D:
et exécutez la ligne: lib /def:libmpg123-0.dll.def
(ou lib /def:libmpg123-0.dll.def
soit le nom du fichier def lib /def:libmpg123-0.dll.def
). libmpg123-0.dll.lib
dans votre dossier. Notez toutefois que la page de propriétés ‘Framework and References’ est utilisée pour définir des références aux assemblys .NET Framework, aux composants COM ou aux projets externes ( MSDN ). Dans ce cas, vous devez spécifier une dépendance supplémentaire de l’éditeur de liens dans votre projet [Propriétés de configuration => Éditeur de liens => Entrée => Dépendances supplémentaires].
la réponse d’Olexander fonctionne très bien, merci beaucoup
J’ai une petite chose à append lorsque vous téléchargez mpg123-1.15.1-x86.zip
vous verrez libmpg123-0.dll (la dll) et libmpg123-0.dll.def la chose utilisée pour créer le fichier .lib comme décrit ci-dessus. il est préférable de changer le nom en libmpg123-0.def sinon il va chercher une dll appelée libmpg123-0.dll qui n’est pas agréable
à côté de ça, ça marche très bien. Je ne peux pas croire que cette information n’était pas sur Internet il y a des années. merci Olexander et merci stackoverflow
FYI, voici un simple décodeur mp3 utilisant mpg123
#include "mpg123/mpg123.h" #define INBUFF 16384 #define OUTBUFF 32768 void loadMp3File(const char* filename) { mpg123_handle *mh; unsigned char *buffer; size_t buffer_size; size_t done; int err; int channels, encoding; long rate; mpg123_init(); mh = mpg123_new(NULL, &err); buffer_size = mpg123_outblock(mh); buffer = (unsigned char*) malloc(buffer_size * sizeof(unsigned char)); /* open the file and get the decoding format */ mpg123_open(mh, filename); mpg123_getformat(mh, &rate, &channels, &encoding); /* set the output format and open the output device */ int m_bits = mpg123_encsize(encoding); int m_rate = rate; int m_channels = channels; /* decode and play */ for (int totalBtyes = 0 ; mpg123_read(mh, buffer, buffer_size, &done) == MPG123_OK ; ) { totalBtyes += done; } /* clean up */ free(buffer); mpg123_close(mh); mpg123_delete(mh); mpg123_exit(); }