Mix OpenAudio

Aus DGL Wiki
Version vom 19. Februar 2007, 18:05 Uhr von Lord Horazont (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Mix_OpenAudio

Name

Mix_OpenAudio - Initialisiert die SDL_Mixer Bibliothek


Delphi-Spezifikation

function Mix_OpenAudio( frequency : Integer; format : UInt16; channels : Integer; chunksize : Integer ) : Integer;


Parameter

frequency Ausgabe-Sample-Frequenz in Samples pro Sekunde (Hz). MIX_DEFAULT_FREQUENCY(22050 Hz) kann für die meisten Spiele als guter Wert verwendet werden.
format Ausgabeformat
channels Anzahl der Ausgabekanäle. Dieser Wert hat nichts mit den Mixer-Kanälen zu tun. 2 entspricht hier Stereo, 1 Mono.
chunksize Bytes pro Ausgabesample.


Beschreibung

Diese Funktion muss vor der Benutzung von anderen SDL_Mixer-Funktionen aufgerufen werden. SDL muss mit SDL_INIT_AUDIO initialisiert werden vor dem Aufruf dieser Funktion. frequency auf 44100, also 44.1KHz, zu setzen, würde der Standardrate für CD's entsprechen. Die meisten Spiele kommen mit 22050 aus, vorallem, da 44100 auf älteren PC's zu viel CPU-Leistung ziehen würde. chunksize ist die Größe jedes Samples. Je kleiner der Wert ist, desto öfter werden die Hook-Funktionen (beispielsweise für Effekte) aufgerufen. Wenn diese Wert zu klein ist, kann der Sound auf älteren Systemen abreißen, ist er zu hoch, hinken die Effekte teilweise hinterher. Der Wert 4096 oder ein größerer ist gut geeignet, wenn man einfach nur Musik abspielt. Dieser Aufruf kann mehere Male hintereinander getätigt werden, aber das Format wird erst geändert, wenn vorher Mix_CloseAudio sooft aufgerufen wurde, wie davor Mix_OpenAudio, erst dann wird das Gerät geschlossen und dann kann das neue Format verwendet werden. Es werden Standardmäßig 8 Mixerkanäle reserviert.

format basiert auf der Standard-SDL-Audiounterstützung (siehe SDL_audio.pas). Hier noch einmal die Werte:

AUDIO_U8 Vorzeichenlose 8-bit Samples
AUDIO_S8 Vorzeichenbehaftete 8-bit Samples
AUDIO_U16LSB Byte-Reihenfolge])
AUDIO_S16LSB Vorzeichenbehaftete 16-bit Samples, in Little-Endian Byte-Reihenfolge
AUDIO_U16MSB Vorzeichenlose 16-bit Samples, in Big-Endian Byte-Reihenfolge
AUDIO_S16MSB Vorzeichenbehaftete 16-bit Samples, in Big-Endian Byte-Reihenfolge
AUDIO_U16 Entspricht AUDIO_U16LSB (für Abwärtskompatiblitäty)
AUDIO_S16 Entspricht AUDIO_S16LSB (für Abwärtskompatiblität)
AUDIO_U16SYS Vorzeichenlose 16-bit Samples, in der Byte-Reihenfolge des Systems
AUDIO_S16SYS Vorzeichenbehaftete 16-bit Samples, in der Byte-Reihenfolge des Systems

MIX_DEFAULT_FORMAT entspricht AUDIO_S16SYS.


Rückgabewert

0 bei Erfolg, -1 bei Fehlern


Siehe auch

Mix_CloseAudio, Mix_QuerySpec, Mix_AllocateChannels