Funktionreferenz


_SoundOpen

Beschreibung anzeigen in

Öffnet eine Sounddatei, welche in anderen _Sound Funktionen verwendet werden kann

#include <Sound.au3>
_SoundOpen ( $sFilePath )

Parameter

$sFilePath Pfad zu der Sounddatei

Rückgabewert

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

Bemerkungen

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.

Verwandte Funktionen

_SoundClose, _SoundLength, _SoundPause, _SoundPlay, _SoundPos, _SoundResume, _SoundStatus, _SoundStop

Beispiel

#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)