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.728 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. |
sevGraph (VB/VBA) Grafische Auswertungen Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Tipp des Monats September 2024 Dieter Otter Übergabeparameter: String oder Array? Mit der IsArray-Funktion lässt sich prüfen, ob es sich bei einem Übergabeparameter an eine Prozedur um ein Array oder einer "einfachen" Variable handelt. TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
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. |