Aktualisiert: 18.05.2007
Newest
  Tipps & Tricks
1.) Anpassung Controls an ein Formular (VB6)
2.) Kopier-Wiederaufnahme (VB6)
3.) Uhrzeit - alle Kürzel (VB6)
4.) Eigene IP-Addresse auslesen (VB6)
5.) Felder - Arrays (allgemeines, deklarieren) (VB.NET)
  Tutorials
1.) Prüfziffernverfahren österreichischer Sozialversic (VB6)
2.) Kommunikation zwischen Formularen bzw. Modulen (VB.NET)
3.) Musikdatein mittels API abspielen (VB6)
4.) Inputbox mit zusätzlichem Button (VB6)
5.) Access & MySQL | Teil 2/2 (VB6)
  Neueste Kommentare
  (letzten 50)
Thomas(21.02.2007 - 14:03)
Dag Johans..(16.11.2006 - 03:44)
Sebi2020(20.10.2006 - 21:43)
Suchen


 Multimedia > Musikdatein mittels API abspielen     von MiB 
Seite: 2 von 3
zurück  |  vor
Code einfügen:

Fügen Sie die nachfolgenden Codeteile in das Modul Modul1 ein.

Public lngaktPosMP3 As Long, lngLaengeMP3 As Long

Public bolPause As Boolean
Public stgDatei As String
Public lngSec As Long, lngMin As Long, lngHours As Long

Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _
(ByVal lpszCommand As String, ByVal lpszReturnString As String, _
ByVal cchReturnLength As Long, ByVal hwndCallback As Long) As Long

Private Declare Function GetShortPathNameA Lib "kernel32" _
(ByVal lpszLongPath As String, ByVal lpszShortPath As String, _
ByVal cchBuffer As Long) As Long
Die Variablen lngaktPosMP3 bzw. lngLaengeMP3 dienen zum Anzeigen der aktuellen Abspielposition bzw. der Länge der Musikdatei.
Die Variable bolPause dient dazu, um zu erkennen, ob die Datei im Pausemodus ist.
Die Variable stgDatei beinhaltet die zu abspielende Msikdatei.
Die Variablen lngSec, lngMin und lngHours dienen zum Anzeigen der aktuellen Abspielposition.

Public Sub playMP3(ByVal Dateiname As String)

Dim Retval As String, Buffer As String * 256

Retval = GetShortPathNameA(Dateiname, Buffer, Len(Buffer))
Dateiname = Left$(Buffer, Retval)

If lngaktPosMP3 And lngLaengeMP3 <> 0 Then 'überprüfe, ob Lied gerade spielt
stopMP3 'Lied stoppen
End If
If mciSendString("open " & Dateiname & " type MPEGVideo alias MP3Name" _
, 0, 0, 0) = 0 Then 'ob Datei geöffnet werden kann
mciSendString "play MP3Name from 0", 0, 0, 0 'Datei abspielen
bolPause = False
Form1.cmdBreak.Caption = "Pause"
End If
End Sub
Diese Sub spielt die Musikdatei ab.
Mit Hilfe der API GetShortPathNameA wird ein langer Dateiname in einen kurzen konvertiert.
Spielt gerade ein Lied, muss es gestoppt und geschlossen werden. Dies wird in der Sub stopMP3 vollzogen (s. weiter unten).
Nun wird die neue Datei mittels mciSendString("open " & Dateiname & " type MPEGVideo alias MP3Name" , 0, 0, 0) geöffnet. Ist hierbei die Überprüfung erfolgreich, also gleich null, kann die Datei mittels mciSendString "play MP3Name from 0", 0, 0, 0 gestartet werden.
bolPause wird auf False gesetzt und der Pause-Button mit Pause beschriftet. Das hat den Sinn, da das vorige Lied vielleicht gerade im Pausemodus war und nun ein neues abgespielt wird. Mehr dazu in der Sub breakMP3.

Public Sub breakMP3()

With Form1
If bolPause = False Then
mciSendString "pause MP3Name", 0, 0, 0
bolPause = True
.cmdBreak.Caption = "Weiter"
.lblZustand.Caption = "--> Liedpause <--"
.Timer1.Enabled = False
Else
mciSendString "resume MP3Name", 0, 0, 0
bolPause = False
.Timer1.Enabled = True
.cmdBreak.Caption = "Pause"
End If
End With
End Sub
Hier wird zuerst abgefragt, ob sich das Lied nicht im Pause-Modus (bolPause = False) befindet. Ist das der Fall, so wird mittels mciSendString "pause MP3Name", 0, 0, 0 die Datei in den Pause-Modus gesetzt.
In der Else-Abfrage wird die Datei mittels mciSendString "resume MP3Name", 0, 0, 0 aus dem Pause-Modus herausgeholt.

Public Sub stopMP3()

mciSendString "stop MP3Name", 0, 0, 0 'Datei stoppen
mciSendString "close MP3Name", 0, 0, 0 'Datei schließen
End Sub
Die Musikdatei wird hier gestoppt und geschlossen.

Public Sub aktPosMP3()

lngaktPosMP3 = Abfrage("status MP3Name position") 'aktuelle Abspielposition
Form1.lblaktPos.Caption = Format(CStr(lngHours), "00:") & _
Format(CStr(lngMin), "00:") & Format(CStr(lngSec), "00") & " (Abspielposition)"
End Sub
Hier wird die aktuelle Abspielposition ermittelt.

Public Sub LaengeMP3()

Dim lngSec As Long, lngMin As Long, lngHours As Long

lngLaengeMP3 = Abfrage("status MP3Name length") 'ges. Länge der Datei

lngSec = Fix(lngLaengeMP3 / 1000)
lngHours = (lngSec - (lngSec Mod 60)) / 60 / 60
lngMin = (lngSec - (lngHours * 60) - (lngSec Mod 60)) / 60
lngSec = lngSec - (lngHours * 60 * 60) - (lngMin * 60)
Form1.lblLaenge.Caption = Format(CStr(lngHours), "00:") & _
Format(CStr(lngMin), "00:") & Format(CStr(lngSec), "00") & " (Gesamtdauer)"
End Sub
Die Länge der Musikdatei wird hier ermittelt.

Private Function Abfrage(ByVal Abfragetext As String) As Long

Dim strReturn As String
Dim lngResult As Long

strReturn = Space$(256)
lngResult = mciSendString(Abfragetext, strReturn, Len(strReturn), 0&)

Abfrage = Val(strReturn)
End Function
Diese Sub wird für die Abfragen der aktuellen Abspielposition und der Länge der Mausikdatien verwendet.
Seite: 2 von 3   zurück  |  vor   dazugefügt am:21.03.2004 | ZIP-Download | bereits betrachtet:6275 mal
Empfehlen Sie diese Seite | zu Favoriten hinzufügen  Copyright 2004 by visualbasic.at