Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Musikberechnung

Forumthread: Musikberechnung

Musikberechnung
12.09.2004 07:09:51
Uwe
Folgendes Problem
Habe einen Ordner,in dem sind Ordner mit MP3-Dateien, zB ACDCOrdner mit 50 MP3-Dateien , Iron MaidenOrdner mit 70 MP3-Dateien,usw.Habe dazu eine Tabelle, in der alle Ordner mit Inhalt nebeneinander aufgelistet werden, mit automatischer alphabetischer Sortierung.In Zeile.1.steht Der Ordnername,in Zeile.2.werden die MP3-Dateien addiert.-------- So, nun mein Problem!!
In Zeile.3.soll automatisch die Ordnergrösse, und in Zeile.4.automatisch die
Abspieldauer des endsprechenden Ordners erfasst werden. Hat jemand hierfür
eine Lösung? Wäre sehr dankbar Gruß Uwe
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Musikberechnung - Abspieldauer
12.09.2004 07:33:05
GraFri
Hallo
Abspieldauer:


' Modul
' benötigte API-Deklarationen
Private Declare Function mciSendString Lib "winmm.dll" _
  Alias "mciSendStringA" ( _
  ByVal lpstrCommand As String, _
  ByVal lpstrReturnString As String, _
  ByVal uReturnLength As Long, _
  ByVal hwndCallback As LongAs Long
Private Declare Function GetShortPathName Lib "kernel32" _
  Alias "GetShortPathNameA" ( _
  ByVal lpszLongPath As String, _
  ByVal lpszShortPath As String, _
  ByVal cchBuffer As LongAs Long
' Ermittelt die Länge einer MP3-Datei
Sub Länge_MP3()
    MsgBox FormatTime(GetMP3Length("E:\Musik\11 - shout.mp3"))
End Sub
' in Millisekunden
Private Function GetMP3Length(ByVal strFileName As StringAs Long
  
  Dim strBuffer As String
  Dim lRet As Long
  Dim sReturn As String
  ' Da die mciSendString Funktion mit langen Dateinamen
  ' nicht korrekt arbeitet, muss zuvor der kurze
  ' 8.3 Dateiname der MP3-Datei ermittelt werden.
  strBuffer = Space$(255)
  lRet = GetShortPathName(strFileName, strBuffer, Len(strBuffer))
  
  If lRet <> 0 Then
    strFileName = Left$(strBuffer, InStr(strBuffer, vbNullChar) - 1)
  End If
  
  ' MP3-Datei öffnen
  mciSendString "open " & strFileName & _
    " type MPEGVideo alias mp3audio", 0, 0, 0
     
  ' Länge der Datei in Millisekunden auslesen
  sReturn = Space$(256)
  lRet = mciSendString("status mp3audio length", _
    sReturn, Len(sReturn), 0&)
    
  ' MP3-Datei schliessen
  mciSendString "close mp3audio", 0, 0, 0
  
  GetMP3Length = Val(sReturn)
End Function
' Für das Umwandeln der Zeitrückgabe (Millisekunden) in ein besser
' lesbares Format (Minuten:Sekunden) können Sie zusätzlich nachfolgende
' Funktion einsetzen:
' Millisekunden in lesbares Zeitformat umwandeln
Private Function FormatTime(ByVal lMSec As Long) _
  As String
  
  Dim iMin As Integer
  Dim iSec As Integer
  
  iSec = Int(lMSec / 1000)
  iMin = Int(iSec / 60)
  iSec = iSec - (iMin * 60)
  
  FormatTime = Format$(iMin, "00") & ":" & _
    Format$(iSec, "00")
End Function
Mit freundlichen Grüßen, GraFri
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige