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 : |