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

VB 6 et antérieur Discussion :

[VB6]Comment faire pour récuperer des donnée sur un mp3 ou wav ?


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club Avatar de MegaBigBoss
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 144
    Points : 61
    Points
    61
    Par défaut [VB6]Comment faire pour récuperer des donnée sur un mp3 ou wav ?
    Comment faire pour récuperer des donnée sur un mp3 ou wav du style :
    - Compositeur
    - Style
    - Durée *
    - Nom du Wave *

    * = c'est ceux qui m'intéresse le plus

    J'utilise le composant "Windows Média Player"
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    rivate Sub mnuOpen_Click()
     
    'Définitions des propriétés de al boîte de dialogue
    CMDialog1.DialogTitle = "Choisissez un fichier"
    CMDialog1.CancelError = True
    CMDialog1.Filter = True
    CMDialog1.Filter = "Fichiers MP3(*.mp3)"
    CMDialog1.FilterIndex = 1
    CMDialog1.InitDir = "C:\"
    '
    'Définition de la routine de renvoi d'erreur
    On Error GoTo ExitbutOuvrir
    'Affichage de la boîte de dialogue
    CMDialog1.ShowOpen
    'Ouverture du fichier sélectionné
     
    Exit Sub
    ExitbutOuvrir:
    'Sortie sans provoquer d'erreur
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub SSCommand1_Click()
    WindowsMediaPlayer1.URL = CMDialog1.FileName 
    Label1.Caption = WindowsMediaPlayer1.URL ' Recupère l'adresse du fichier pour la mettre dans un label 
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub mnuExit_Click()
    Dim T As String
    Dim M As String
    Dim Reponse As Integer
    'Fermer toutes les feuilles et quitter le programme
    T$ = "Attention"
    M$ = "Voulez vous vraiment quitter le programme ?"
    Reponse% = MsgBox(M$, 4 + 32, T$)
    If Reponse% = 6 Then
    'Sortir du programme
    End
    End If
    End Sub
    Et pour la durée j'aimerais qu'elle se "mette" dans label 2 ET qu'un timer1 ait (dans la propriété intervale) la mème valeur (que le label2) + 5 seconde

    Comment faire surtout que si la piste dure plus que 61 seconde il me faudra un 2 em timer !!

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonjour

    tu peux consulter la piece jointe contenue dans ce lien

    http://www.developpez.net/forums/sho...d.php?t=162912

    ( voir le message du 10.06.2006 à 18h39 )


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub informationSequenceEnCours()
    MsgBox Wmp.currentMedia.getItemInfo("author")
    MsgBox Wmp.currentMedia.getItemInfo("Title")
    MsgBox Wmp.currentMedia.getItemInfo("Album")
    MsgBox Wmp.currentMedia.getItemInfo("copyright")
    MsgBox Wmp.currentMedia.getItemInfo("Artist")
    MsgBox Wmp.currentMedia.getItemInfo("Genre")
    MsgBox Wmp.currentMedia.getItemInfo("Bitrate") / 1000 & " kbps"
    MsgBox Wmp.currentMedia.getItemInfo("Abstract")
    MsgBox Wmp.currentMedia.getItemInfo("bitRate")
    MsgBox Wmp.currentMedia.getItemInfo("duration")
    End Sub


    une autre solution qui liste toutes les informations :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub informationsSequence_WMP()
    Dim Resultat As String
    Dim i As Integer
    Dim Cm As WMPLib.IWMPMedia
    Set Cm = Wmp.currentMedia
     
    For i = 0 To Cm.attributeCount - 1
    If Cm.getItemInfo(Cm.getAttributeName(i)) <> "" Then _
    Resultat = Resultat & Cm.getAttributeName(i) & " : " & _
    Cm.getItemInfo(Cm.getAttributeName(i)) & vbLf
    Next
    MsgBox Resultat
    End Sub


    bon apres midi
    michel

  3. #3
    Membre du Club Avatar de MegaBigBoss
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 144
    Points : 61
    Points
    61
    Par défaut
    Merci!

  4. #4
    Membre du Club Avatar de MegaBigBoss
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 144
    Points : 61
    Points
    61
    Par défaut
    Mais pour la durée ça ne marche pas !

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    peux tu donner plus de précisions ?


    bonne soiree
    michel

  6. #6
    Membre du Club Avatar de MegaBigBoss
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 144
    Points : 61
    Points
    61
    Par défaut
    Bah le problème c'est qu'il n'y a pas d'erreur mais rien ne s'affiche dans le label (et pour le besoin d'aide urgent j'ai réussi a la vitesse de mes mains !!!)

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    ...difficile de répondre sans voir ta procedure ...

  8. #8
    Membre du Club Avatar de MegaBigBoss
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 144
    Points : 61
    Points
    61
    Par défaut
    La voila :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub SSCommand1_Click()
    WindowsMediaPlayer1.URL = CMDialog1.FileName
    Label1.Caption = WindowsMediaPlayer1.currentMedia.getItemInfo("Title")
    Label2.Caption = WindowsMediaPlayer1.currentMedia.duration
    Timer1.Interval = Label2.Caption + 5000
    End Sub

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    rebonsoir

    il me semble que la lecture doit etre en cours afin de récupérer cette info

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Command1_Click()
        WindowsMediaPlayer1.URL = CMDialog1.FileName
        Label1.Caption = WindowsMediaPlayer1.currentMedia.getItemInfo("Title")
    End Sub
     
    Private Sub WindowsMediaPlayer1_PlayStateChange(ByVal NewState As Long)
        If Left(WindowsMediaPlayer1.Status, 7) = "Lecture" Then _
        Label2.Caption = WindowsMediaPlayer1.currentMedia.duration
    End Sub


    bonne soiree
    michel

  10. #10
    Membre du Club Avatar de MegaBigBoss
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 144
    Points : 61
    Points
    61
    Par défaut
    Merci ça marche super !!! Mais encore un problème à traiter avec le lecteur !
    J'ai un timer qui active une msgbox mais le probleme c'est que la durée du morceau affichée avec ce code là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    windowsmediaplayer.currentMedia.duration
    Est fait avec une virgule !!!Et comme le timer = currentMedia.duration + 5000
    ça me met une erreur d'incompatibilité !
    Donc j'aimerais savoir comment faire pour:
    - Enlever la virgule et ce qu'il y a après
    - Rajouter (si le chiffre des dixième est supèrieur ou égal à 5) 1 sec ou deux

    Merci


    MegaBigBoss

  11. #11
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonsoir

    je n'ai pas compris ce que tu cherches à faire mais tu pourrais utiliser ce principe


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Private Sub WindowsMediaPlayer1_PlayStateChange(ByVal NewState As Long)
        Dim x As Single
        Dim y As Long
     
        If Left(WindowsMediaPlayer1.Status, 7) = "Lecture" Then
     
        x = WindowsMediaPlayer1.currentMedia.duration
        y = Int(WindowsMediaPlayer1.currentMedia.duration)
     
        Debug.Print x
        Debug.Print y
        Debug.Print x - y
     
        If x - y > 0.5 Then y = y + 2
     
        Debug.Print y
     
        End If
    End Sub


    bonne soiree
    michel

  12. #12
    Membre du Club Avatar de MegaBigBoss
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 144
    Points : 61
    Points
    61
    Par défaut
    Je veux que mon timer ait la meme durée que la chanson + 2 Sec mais il n'y a rien permettant de le faire !!!

  13. #13
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Il ne faut pas utiliser un contrôle Timer mais la fonction Timer
    Ouvre un peu ton aide en ligne et lis-la ! Elle est de surcroît assortie d'un exemple qui correspond on ne peut plus à ton "affaire".

  14. #14
    Membre du Club Avatar de MegaBigBoss
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 144
    Points : 61
    Points
    61
    Par défaut
    Finalement j'ai sprimmé l'affichage de la durée !

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/11/2011, 15h52
  2. comment faire pour extraire des données ?
    Par bernardgiraud dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 31/08/2007, 00h37
  3. Réponses: 10
    Dernier message: 14/02/2007, 17h03
  4. [MySQL] Php, je ne comprends pas comment faire pour introduire des données dans une table
    Par Liondd dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 14/12/2006, 12h53
  5. Réponses: 17
    Dernier message: 14/06/2006, 17h20

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