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 :

[FMOD - FSOUND] Comment utilise t on FSOUND_GetTagField() ?


Sujet :

C

  1. #1
    Membre éclairé Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Par défaut [FMOD - FSOUND] Comment utilise t on FSOUND_GetTagField() ?
    Bonjour,

    Voilà tout est dansle titre : pourriez vous me dire comment utiliser gettagfield afin de récupérer les infos (titre - artiste - album - année de la chanson) (TAG) d'une chanson ? (pour les récupérer dans une structure dont les champs utiles ici sont :

    - data.path (chemin de la chanson [absolu])
    - data.name ( Le plus intéressant : il s'agit de son nom en utilisant les ID3 tags sous la forme suivante : <Artist> - <Titre_Chanson> )

    Pendant que je poste : Pourquoi, pour certaines chansons le temps total de la chanson n'est pas bon ? (pourtant récupéré avec FSOUND_Stream_GetLenghtMs() )

    exemple : chanson de l'album X -> 4min30 (correct, et vérifié)
    chanson de l'album Y -> 56min32 (evidemment pas bon)

    Petite précision : ces problèmes ci ne sont présents qu'au sein du même album/dossier

    Merci d'avance.

  2. #2
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par kidpaddle2
    Bonjour,

    Voilà tout est dansle titre : pourriez vous me dire comment utiliser gettagfield afin de récupérer les infos (titre - artiste - album - année de la chanson) (TAG) d'une chanson ? (pour les récupérer dans une structure dont les champs utiles ici sont :

    - data.path (chemin de la chanson [absolu])
    Je ne vois pas comment ceci se trouverait dans le Tag, c'est lorsque tu ouvres le fichier que tu pourras le dire...

    - data.name ( Le plus intéressant : il s'agit de son nom en utilisant les ID3 tags sous la forme suivante : <Artist> - <Titre_Chanson> )
    En utilisant :

    FSOUND_Stream_GetNumTagFields : pour récupérer le nombre de champs nommé par la suite nChamps

    Tu parcours les champs (de 0 jusqu'à nChamps - 1) et tu fais un strcmp avec le 4ème paramètre remplit par FSOUND_Stream_GetTagField (avec ARTIST pour avoir l'artiste et TITLE pour avoir le titre).

    Remarque que tu peux aussi utiliser : FSOUND_Stream_FindTagField

    exemple : chanson de l'album X -> 4min30 (correct, et vérifié)
    chanson de l'album Y -> 56min32 (evidemment pas bon)
    Alors pourquoi dans ton texte tu as mis un album X et un album Y??

    Jc

  3. #3
    Membre éclairé Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Par défaut
    Merci de ta réponse. Tu veux dire que en parcourant les champs (jusqu'à nChamps-1), j'ai juste à savoir si TITLE est présent, et si c'est le cas à récupérer la string dans un tampon, et essayer avec ARTIST, et enfin concaténer les deux tampons pour obtenir <Artist> - <Title> ? Mais alors pourquoi utiliser strcmp qui recherche si les 2 strings sont identiques au lieu de strstr qui cherche une string dans une autre ? Avec strcmp, cela veut dire que le champs ne contient QUE TITLE ou ARTIST et ce n'est pas ce que je voudrais ... ou alors j'ai mal compris ?

    Puis, conçernant les temps totaux des chansons, je pense que tu as mal compris : Par exemple si je me souviens bien, les chansons de Mercedes Mixed Tape (la 11 ou 10 je crois) ont bien les temps appropriés, alors que les albums de Michael Jackson ont tous des chansons ayant des temps erronés : 50min, 34 min 37min etc... et la chanson stoppe bien évidemment avant.

  4. #4
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par kidpaddle2
    Merci de ta réponse. Tu veux dire que en parcourant les champs (jusqu'à nChamps-1), j'ai juste à savoir si TITLE est présent, et si c'est le cas à récupérer la string dans un tampon, et essayer avec ARTIST, et enfin concaténer les deux tampons pour obtenir <Artist> - <Title> ? Mais alors pourquoi utiliser strcmp qui recherche si les 2 strings sont identiques au lieu de strstr qui cherche une string dans une autre ? Avec strcmp, cela veut dire que le champs ne contient QUE TITLE ou ARTIST et ce n'est pas ce que je voudrais ... ou alors j'ai mal compris ?
    Non, on parcourant les différents éléments, tu vas tomber sur un contenant TITLE uniquement et un autre ARTIST (s'ils sont disponibles). Tu devras les concaténer à la main...

    Puis, conçernant les temps totaux des chansons, je pense que tu as mal compris : Par exemple si je me souviens bien, les chansons de Mercedes Mixed Tape (la 11 ou 10 je crois) ont bien les temps appropriés, alors que les albums de Michael Jackson ont tous des chansons ayant des temps erronés : 50min, 34 min 37min etc... et la chanson stoppe bien évidemment avant.
    Là, je ne peux pas te le dire... Il faudrait un spécialiste de fmod pour le savoir....

    Jc

  5. #5
    Membre éclairé Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Par défaut
    Dommage merci quand même... je vais voir ça.

  6. #6
    Membre éclairé Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Par défaut
    En ce qui conçerne GetTagField, j'ai tout réussi. Mais je n'arrive toujours pas à comprendre pourquoi les temps ne sont pas les bons pour certaines chansons ... sauriez vous comment y remédier ? (traduction : UP !!!)

  7. #7
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par kidpaddle2
    En ce qui conçerne GetTagField, j'ai tout réussi. Mais je n'arrive toujours pas à comprendre pourquoi les temps ne sont pas les bons pour certaines chansons ... sauriez vous comment y remédier ? (traduction : UP !!!)

    Es-tu sûr que tes mp3 ne sont pas corrompus?

    Jc

    PS: Mais de nouveau ce n'est plus une question sur le C, envoit un mail aux développeurs de la bibliothèque.

  8. #8
    Membre éclairé Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Par défaut
    Je n'en ai aucune idée ... mais au vu du nombre important de ceux ci ayant ce problème, j'en doute.

  9. #9
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Par défaut
    Je sais d'où vient le problème du temps total qui s'affiche pas correctement, cela vient probablement de la compression du mp3.

    J'ai trouvé la solution dans la doc de fmod :

    Remarks
    FSOUND_MPEGACCURATE will need to be used with mp3 files that use VBR encoding for more accuracy.
    Il faut donc signaler lors de l'ouverture du son que l'on travaille avec un mp3 :
    musique = FSOUND_Stream_Open(titreMusique, FSOUND_MPEGACCURATE, 0, 0);

    Edit: xd, ça fait un bail que personne ne poste plus dans le topic^^

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/02/2009, 12h06
  2. Comment utiliser FMod avec plusieurs cartes sons?
    Par NJKMASTER dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/11/2007, 11h43
  3. comment utiliser actionscript ?
    Par webs dans le forum Flash
    Réponses: 3
    Dernier message: 09/02/2003, 23h11
  4. Comment utiliser OUT ?
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 3
    Dernier message: 20/07/2002, 09h35
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

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