VB-Homepage Tipp 420

Länge einer Klangdatei ermitteln (*.wav)

Eigentlich sagt der Titel schon alles über den Inhalt des folgenden Tipps.
Auswahl einer *.wav Datei und ermitteln der Spiellänge.

1. Allgemein/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 Long) As Long

2. Allgemein/Wave_Länge
Function Wave_Länge(Dateiname)
Dim i As Long, RS As String, cb As Long, s As Single

Wave_Länge = 0
RS = Space$(128)

i = mciSendString("stop sound", RS, 128, cb)
i = mciSendString("close sound", RS, 128, cb)
i = mciSendString("open waveaudio!" & Dateiname & " alias sound", RS, 128, cb)

If i Then Wave_Länge = -1

'Sound abspielen
'i = mciSendString("play sound", RS, 128, cb)

'Soundlänge
i = mciSendString("status sound length", RS, 128, cb)

'0 = Success - kein Fehler aufgetreten
'-1 = Fehler
If Wave_Länge = 0 Then Wave_Länge = RS / 1000

i = mciSendString("stop sound", RS, 128, cb)
i = mciSendString("close sound", RS, 128, cb)

End Function

3. Form und Objekte
Als nächstens fügen Sie Ihrem Projekt über Komponenten das Control
MS Common Dialog Control hinzu. Wir nutzen es lediglich zum Aufruf eines Auswahlfensters, für die gewünschte *.wav Datei.
Desweiteren fügen Sie bitte noch einen Commandbutton (Command1) und
ein Labelobjekt (Label1) auf Ihrer Form ein. Der Commandbutton soll die Aktion auslösen und den ermittelten Wert im Labelobjekt ausgeben.

4. Command1/Click
Dim Soundlaenge As Single

'Dateiauswahl
CommonDialog1.Filter = "Wav Klangdateien *.wav|*.wav"
CommonDialog1.Action = 1

'keine Auswahl getroffen
If CommonDialog1.FileName = "" Then Exit Sub

Soundlaenge = Wave_Länge(CommonDialog1.FileName)

'Fehler (langer Dateiname ?)
If Soundlaenge = -1 Then
   MsgBox "Fehler"
Else
   Label1.Caption = CommonDialog1.FileName & " hat eine Länge von " &  Soundlaenge & " Sek."
End If

5. Wichtig!
Diese Funktion kann nicht mit langen Dateinamen umgehen, Sie müssen daher lange Dateinamen erst in die 8.3 Konvention umwandeln.
Tipp 405 :
Lange Pfad- und Dateiangaben in 8.3 Konvention umwandeln

Tipp-Download

Quelle :

Zurück zur Übersichtsseite