[id] = CreateMusic(id, pitch, fmt)
id
Nil übergeben, wird CreateMusic()
automatisch
eine freie ID auswählen und sie zurückgeben. Sie müssen auch
die gewünschte Wiedergabefrequenz für die Musik im Argument
pitch
sowie die Codierung der PCM-Daten im Argument
fmt
angeben. Derzeit werden folgende Formate unterstützt:
#MONO8
, #STEREO8
, #MONO16
und #STEREO16
.
Bevor Sie diesen Befehl aufrufen, müssen Sie eine Callback-Funktion
vom Typ FillMusicBuffer
mit dem Befehl InstallEventHandler()
installieren. Diese Callback-Funktion wird dann aufgerufen,
wenn der Audio-Server neue PCM-Daten benötigt. Um die
neuen PCM-Daten an den Audio-Server zu liefern, hat Ihre
Callback-Funktion den Befehl FillMusicBuffer() aufzurufen.
Siehe FillMusicBuffer für Details.
Sobald Sie die Musik mit CreateMusic()
erstellt haben, können
Sie dann alle regulären Befehle aus der Musikbibliothek verwenden,
um mit der neuen Musik zu arbeiten. Zum Beispiel können Sie
mit PlayMusic() die Wiedergabe starten und mit PauseMusic()
das Musikobjekt anhalten.
Stellen Sie sicher, dass Sie immer eine Hauptschleife verwenden,
die WaitEvent() aufruft, wenn Sie diesen Befehl
verwenden, da die Callback-Funktion von CreateMusic()
immer
von WaitEvent() aufgerufen wird! Wenn Sie WaitEvent() nicht
in einer Schleife verwenden, wird Ihre Callback-Funktion nie
aufgerufen werden und somit wird nie ein Ton gespielt!
Bitte beachten Sie, dass dies ein Lowlevel-Befehl ist, der
ganz in der Nähe der Hardware-Ebene läuft. Daher sollte Ihre
Callback-Funktion Ihr Skript niemals für eine längere Zeit
blockieren. Es sollte so schnell wie möglich wieder in die
Hauptschleife zurückkehren. Sie dürfen niemals Befehle aufrufen,
die das Skript in der Callback-Funktion von CreateMusic()
blockieren könnten. Zum Beispiel ist der Aufruf von Wait()
oder SystemRequest() in einer Musik-Callback-Funktion eine
sehr schlechte Idee.
id
Nil angegeben haben.