IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Lire mp3 en C sans bibliothèques externes !


Sujet :

C

  1. #1
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 33
    Par défaut Lire mp3 en C sans bibliothèques externes !
    Salut à tous,
    je vous pose une question sérieuse concernant la lecture d'un fichier audio(mp3)
    en C sans l'utilisation d'aucune bibliothèques audio externe!
    l'application dont je veux créer est en console,je tape le chemin du fichier mp3
    puis jouer...
    j'ai chercher un peu sur google,et ce que j'ai déduit est le suivant:
    d'abord on doit collecter des informations sur le format(ici mp3) et savoir la structure de fichier(à quoi sert les différent champs de l'entête,etc...)...aprés on doit préparer la carte son à recevoir les donnés à travers son pilote...
    mais je n'arrive jamais à comprendre comment réaliser tous ça! et comment les gents ont pu codé des bibliothèques audio en C!
    pour être plus précis,je suis sur Windows XP,j'utilise CodeBlocks avec le compilateur TDM GCC...et je suis prêt à coder !
    Merci beacoup d'avance à tous ce qui m'aide à trouver une solution...j'espère...

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 449
    Par défaut
    Tu t'attaques à très gros, si tu débutes.

    Le MP3 n'est pas seulement des données audio précédées par des en-têtes. C'est aussi un format de compression utilisant des mathématiques avancées, qu'il te faut décoder avant d'envoyer le signal recomposé vers ta carte son.

    Un pilote audio reconnaissant directement le MP3 peut être considéré comme une bibliothèque audio externe, ce qui sort de ton périmètre, donc.

  3. #3
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Bonjour,
    Citation Envoyé par Pinokio3x7 Voir le message
    comment les gents ont pu codé des bibliothèques audio en C!
    Et bien regarde les bibliothèques "lame", "mpeg123", ... tu verras que (dé)coder du mp3 en C c'est tou à fait possible...
    Ceci dit, ce n'est pas une personne qui a fait cela... mais un certain nombre...

    Si tu veux t'amuser à faire un petit lecteur audio autonome (sans aucune bibliotheque) je te conseille de commencer par le wave (ou l'aiff)... Une fois que tu auras fait cela, on verra pour la suite.

  4. #4
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 33
    Par défaut
    Merci pour les réponses,
    créer un lecteur wav est simple,il suffit d'appeler la fonction PlaySound de l'API windows:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    #include <mmsystem.h>
     
    int main(int argc, char *argv[])
    {
        PlaySound("son.wav", NULL, SND_FILENAME | SND_ASYNC | SND_LOOP);
        getchar();
        return 0;
    }
    et il faut ajouter libwinmm.a à "Linker setting" sous codeblocks...
    à propos du décodeur MP3,j'ai mis un coups d'œil sur la source de la bibliothèque "lame"...c'est très chaud !
    il parait que quelque soit le format à décoder,ça va être une tache difficile...mais possible...
    et comme ça je ne peut pas réaliser mon truc pour le moment...
    donc pour que je met ce problème "résolu",quelqu'un SVP peut m'expliquer les
    étapes pour décoder un format audio pour le lire en aprés(sur Windows)...

  5. #5
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Citation Envoyé par Pinokio3x7 Voir le message
    il suffit d'appeler la fonction PlaySound de l'API windows:
    [...]
    et il faut ajouter libwinmm.a à "Linker setting" sous codeblocks...
    Tiens donc ! Mais au fait,
    Citation Envoyé par Pinokio3x7 Voir le message
    en C sans l'utilisation d'aucune bibliothèques audio externe!
    Et qu'est-ce que tu fais avec "PlaySound" a ton avis ? Tu n'utiliserais pas une bibliothèque externe par hasard ?!

    quelqu'un SVP peut m'expliquer les
    étapes pour décoder un format audio pour le lire en aprés(sur Windows)...
    1) Trouver la spécification du format
    2) Comprendre la spécification du format
    3) Coder la spécification du format

  6. #6
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 33
    Par défaut
    merci pour l'explication...
    bon, je vais chercher un autre format plus simple que le mp3,puis je commence
    à coder...,je vais essayer de lire quelques codecs disponible en ligne pour mieux comprendre ..

  7. #7
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Citation Envoyé par Fabllot Voir le message
    Et qu'est-ce que tu fais avec "PlaySound" a ton avis ? Tu n'utiliserais pas une bibliothèque externe par hasard ?
    Si on voit les fonctions de l'OS comme une extension (de très haut niveau évidemment) du jeu d'instructions du processeur, elles ne comptent pas pour de fonctions "externes".

    @Pinokio3x7 : Pour lire des MP3s avec l'API Windows, il y a l'API MCI.

  8. #8
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 33
    Par défaut
    Merci,c'est vraiment excellent!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Jouer de la musique en C sans bibliothèque externe
    Par AchilleFraisse dans le forum Débuter
    Réponses: 1
    Dernier message: 12/06/2014, 14h27
  2. serialiser un objet sans utiliser de bibliothèque externe
    Par Jérémy Lefevre dans le forum Langage
    Réponses: 2
    Dernier message: 11/04/2014, 17h02
  3. Lire un MP3 en boucle sans coupure
    Par Ceubex dans le forum Général Java
    Réponses: 2
    Dernier message: 11/11/2011, 12h23
  4. bibliothèque pour lire mp3
    Par lefty972 dans le forum C#
    Réponses: 3
    Dernier message: 19/10/2011, 08h51
  5. Réponses: 4
    Dernier message: 05/10/2004, 17h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo