VB4-VB6
Von: Thorsten Dörfler
Um einen einfachen Wave - Sound abzuspielen, kann man sich des PlaySound API bedienen:
' Deklaration: Private Declare Function PlaySound Lib "winmm.dll" _ Alias "PlaySoundA" ( _ ByVal lpszSoundName As Any, _ ByVal uFlags As Long _ ) As Long ' Flag Werte für den Parameter uFlags: Private Const SND_SYNC As Long= &H0 ' spielt den Sound synchron (Standard) Private Const SND_ASYNC As Long = &H1 ' spielt den Sound ansynchron Private Const SND_LOOP As Long = &H8 ' wiederholt die Wiedergabe bis ' sndPlaySound erneut aufgerufen wurde Private Const SND_PURGE As Long = &H40 Private Const SND_FILENAME As Long = &H20000
Aufruf:
Sound abspielen:
PlaySound CStr("[Pfad-/Dateiname]"), 0, SND_FILENAME Or SND_ASYNC
Sound endlos abspielen:
PlaySound CStr("[Pfad-/Dateiname]"), 0, SND_FILENAME Or SND_LOOP Or SND_ASYNC
Sound stoppen:
PlaySound CLng(0), 0, SND_PURGE
Eingebettete Wave-Datei
Sie können die Wave-Datei auch in Ihre Anwendung einbetten. Fügen Sie dazu die Wave-Datei im Ressourcen-Editor (unter Add-Ins) - über "Benutzerdefiniert" ein. Die Wave-Ressource ist jetzt im Knoten "Custom" eingeordnet. Wählen Sie die Ressource aus, wählen Eigenschaften und änderen Sie den Typ in "WAVE".
Zum Abspielen direkt aus der Anwendungsressource, bedarf es nur eines leicht geänderten Aufrufs der o.g. PlaySound API Funktion:
' Ergänzende Deklaration: Private Const SND_RESOURCE As Long = &H40004
Abspielen der Wave-Ressource mit der ID '101':
PlaySound CLng(101), App.hInstance, SND_RESOURCE Or SND_ASYNC
Abspielen der Wave-Ressource mit der ID '101':
PlaySound CLng(101), App.hInstance, SND_RESOURCE Or SND_LOOP Or SND_ASYNC
Sound stoppen:
PlaySound CLng(0), 0, SND_PURGE
Dies funktioniert jedoch erst in der kompilierten Anwendung, da VB während des Debuggens die Ressourcen anders verwaltet, als es in der kompilierten Anwendung der Fall ist.