Extraire le temps d'un fichier mp3 grâce à Excel

LeFast -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour à tous.

Je suis débutant dans Power Query et je ne sais pas il est possible d'extraire le temps d'un fichier mp3; m4a et wma ? Dans le sens, avoir la durée d'un morceaux de musique.

Vaut-il utiliser du Vba en plus ?

Convertir le fichier mp3 en un autre format ?

Ou autre possibilité ?

Je suis entrain de faire du sur-place dans mes recherche.

Si quelqu'un peut m'éclaircir, même si c'est impossible, je lui en serai reconnaissant.

Cordialement Le Fast.

4 réponses

  1. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    Bonjour LeFast.

    Je ne connais pas PowerQuery, mais je serais très étonné qu'il soit capable de repérer l'heure de début et l'heure de fin, dans l'exécution d'un fichier son !
    N'espère pas trop recevoir une réponse positive à ta demande.
    0
  2. fmq Messages postés 4899 Date d'inscription   Statut Contributeur Dernière intervention   721
     
    chalut

    je ne connais pas non plus Power Query
    mais il doit pouvoir importer sans probleme les données d'un fichier texte

    pour obtenir l'info utilises les outils ffmpeg
    syntaxe:
    ffprobe -v error -show_entries format=duration audio.mp3 >infos.txt

    cia ciao

    0
    1. LeFast
       
      Merci je vais essayer
      0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    Pour indiquer la durée d'une procédure (baptisée ici "ta_macro")

    Sub ndique_duree()
    Dim Start as single, Fin as single
    Start = Timer
    Call Ta_macro
    fin = Timer
    MsgBox Abs(fin - start)
    End Sub


    0
    1. LeFast
       
      Salut est ce que tu peux développer ton idée, s'il te plait ? Car je ne comprend pas trop
      Cdt
      0
  4. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    en vba:

    Option Explicit
    'API Windows Multmedia à laquelle on envoit des commandes
    Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
    Private Function DureeFichier(sFichier As String) As String
       'On crée un buffer de 128
       Dim sRetString As String * 128
       On Error Resume Next
       'on ferme fichier au cas où il serait ouvert
       mciSendString "close fichier", 0, 0, 0
       'on ouvre le fichier passé en paramètre
       mciSendString "open """ & sFichier & """ type MPEGVideo alias fichier", 0, 0, 0
       'on règle le format temporel sur milliseconde
       mciSendString "set fichier time format ms", 0, 0, 0
       'on récupère la durée du fichier dans le buffer
       mciSendString "status fichier length", sRetString, 128, 0
       'on passe cette durée à la fonction FormatTemps et on l'affecte à la valeur de notre fonction
       DureeFichier = FormatTemps(CDbl(Replace(sRetString, Chr(0), "") / 1000))
       'et enfin on ferme fichier
       mciSendString "close fichier", 0, 0, 0
    End Function
    'Fonction qui renvoie la durée formatée ainsi 00:00:00
    Private Function FormatTemps(dTemps As Double) As String
       Dim lHeure As Long
       Dim lMinute As Long
       Dim lSeconde As Long
       Dim lTemps As Long
        lTemps = Round(dTemps)
       lHeure = Int(lTemps / 3600)
       lMinute = Int((lTemps - 3600 * lHeure) / 60)
       lSeconde = lTemps - 3600 * lHeure - 60 * lMinute
       FormatTemps = Format(lHeure, "00") & ":" & Format(lMinute, "00") & ":" & Format(lSeconde, "00")
    End Function
    Sub ouvrir()
    Dim fichier As String
    fichier = Application.GetOpenFilename _
            ("Tous les fichiers (*.*),*.*")
     MsgBox DureeFichier(fichier), vbInformation, "Durée musique"
    End Sub
    
    


    Voilà

    0