Das Abspielen von WAVE-Dateien kann entweder über das MCI-Control erfolgen oder auch per API-Funktion sndPlaySound. Das ganze klappt auch ganz gut - doch: Sollen zwei oder mehrere WAVE-Dateien gleichzeitig abgespielt werden, braucht man entweder mehrere MCI-Controls - die API-Funktion z.B. scheidet hier sofort aus! Es gibt aber noch einen Weg, eine WAVE-Datei abzuspielen - wiederum per API-Funktion - aber diesmal mit Hilfe der universellen Funktion mciSendString. Und hiermit ist es dann auch möglich zwei oder noch mehr WAVE-Dateien gleichzeitig abzuspielen. Alles was man beachten muss, ist daß man für jede abzuspielende WAVE-Datei ein eindeutigen AliasName benutzt, über den das Abspielen und Stoppen der Wiedergabe erfolgt. Kopieren Sie nachfolgenden Code in ein Modul: ' benötigte API-Deklaration Private 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 GetShortPathName Lib "kernel32" _ Alias "GetShortPathNameA" ( _ ByVal lpszLongPath As String, _ ByVal lpszShortPath As String, _ ByVal cchBuffer As Long) As Long ' WAVE-File abspielen Public Function WAVE_Play(ByVal sFile As String, _ ByVal sAlias As String) As Boolean Dim bResult As Boolean ' Dateinamen in DOS 8.3 Format, da z.B. Sonderzeichen ' wie Leerzeichen Probleme machen Dim sBuffer As String Dim lResult As Long sBuffer = Space$(255) lResult = GetShortPathName(sFile, sBuffer, Len(sBuffer)) If lResult <> 0 Then sFile = Left$(sBuffer, InStr(sBuffer, vbNullChar) - 1) ' MCI öffnen If mciSendString("open " & sFile & _ " type WaveAudio alias " & sAlias, 0, 0, 0) = 0 Then ' WAVE abspielen mciSendString "play " & sAlias & " from 0", 0, 0, 0 End If End If WAVE_Play = bResult End Function ' Wiedergabe stoppen und MCI schließen Public Sub WAVE_Stop(ByVal sAlias As String) mciSendString "stop " & sAlias, 0, 0, 0 mciSendString "close " & sAlias, 0, 0, 0 End Sub Beispiel für das Abspielen zweier WAVE-Files Dim sFile1 As String Dim sFile2 As String sFile1 = "Wave_1.wav" sFile2 = "Wave_2.wav" ' Wiedergabe starten WAVE_Play sFile1, "MyWAVE_1" WAVE_Play sFile2, "MyWAVE_2" ' Wiedergabe stoppen und MCI schließen WAVE_Stop "MyWAVE_1" WAVE_Stop "MyWAVE_2" Dieser Tipp wurde bereits 27.485 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. Neu! sevEingabe 3.0 Einfach stark! Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |