Öffnet eine Sounddatei, welche in anderen _Sound Funktionen verwendet werden kann
#include <Sound.au3>
_SoundOpen ( $sFilePath )
| $sFilePath | Pfad zu der Sounddatei |
| Erfolg: | ein 4-Elemente Array welches folgende Informationen enthält: $aArray[0] = ID-String der Sounddatei $aArray[1] = VBR Länge Korrekturfaktor $aArray[2] = VBR Zeit Korrekturfaktor $aArray[3] = Sound ID Marker |
| Fehler: | 0 und setzt das @error Flag auf ungleich 0 |
| @error: | 1 - MCI Fehler beim öffnen 2 - Datei existiert nicht |
| @extended: | Integer ungleich 0 = MCI Error |
Obwohl viele der _Sound...() Funktionen Dateinamen als Parameter akzeptieren sollte man bei Dateien die mit einer VBR (variable Bitrate) enkodiert wurden _SoundOpen() verwenden. Dann sollte das zurückgegebene Array als Parameter in den anderen _Sound...()-Funktionen verwendet werden. Dies ist notwendig, da MCI DLL annimmt, dass alle Dateien mit einer CBR (konstante Bitrate) enkodiert sind. Dadurch würde man falsche Ergebnisse wie zum Beispiele Länge und Position von den _Sound...()-Funktionen erhalten deren Dateien eine VBR aufweisen. Wenn das Array als ID-Parameter in den Sound...()-Funktionen verwendet wird, so wird das ID-Array notfalls aktualisiert wenn eine VBR Korrekturfaktor (_SoundStop()) notwendig ist.
Die individuellen Elemente des zurückgegebenen Arrays haben außerhalb der _Sound Funktionen keinerlei Verwendung und ihre interne Verwendung ist für den Benutzer durchschaubar.
_SoundClose, _SoundLength, _SoundPause, _SoundPlay, _SoundPos, _SoundResume, _SoundStatus, _SoundStop
#include <MsgBoxConstants.au3>
#include <Sound.au3>
Local $sound = _SoundOpen(@WindowsDir & "\media\Windows XP Startup.wav")
If @error = 2 Then
MsgBox($MB_SYSTEMMODAL, "Fehler", "Die Datei existiert nicht.")
Exit
ElseIf @extended <> 0 Then
Local $iExtended = @extended ; Zuweisung, weil @extended nach DllStructCreate() geändert wird
Local $stText = DllStructCreate("char[128]")
DllCall("winmm.dll", "short", "mciGetErrorStringA", "str", $iExtended, "struct*", $tText, "int", 128)
MsgBox($MB_SYSTEMMODAL, "Fehler", "Öffnen fehlgeschlagen." & @CRLF & "Fehlernummer: " & $iExtended & @CRLF & "Fehlerbeschreibung: " & DllStructGetData($stText, 1) & @CRLF & "Beachte: Möglicherweise kann der Sound dennoch korrekt abgespielt werden.")
Else
MsgBox($MB_SYSTEMMODAL, "Erfolgsmeldung", "Die Datei wurde erfolgreich geöffnet.")
EndIf
_SoundClose($aSound)