Registriert: Sa Jul 22, 2006 00:43 Beiträge: 30 Wohnort: Borland
Hi Community,
nachdem ich jetzt doch so weit bin, dass ich Sound in mein Projekt integrieren möchte, bin ich durch eines der Tutorials auf SDL gestoßen und tue mir gerade etwas schwer das halbwegs hinzubekommen bzw. ich verstehe das allgemeine Vorgehen nicht ganz.
Laut Dokumentation muss ich als erstes das Soundsubsystem initialisieren, was soweit auch funktioniert.
Dann das einmal das Audio Device öffnen:
Code:
procedure fill_audio( udata :pointer; stream : PUint8; len :integer);
var
wanted : TSDL_AudioSpec;
begin
// Set the audio format
wanted.freq:=22050;
wanted.format:= AUDIO_S16;
wanted.channels:=2;// 1 = mono, 2 = stereo
wanted.samples:=1024;// Good low-latency value for callback
wanted.callback:= fill_audio;
wanted.userdata:=nil;
// Open the audio device, forcing the desired formats
if( SDL_OpenAudio(@wanted,nil) < 0)then
begin
MessageBox(0,PChar(Format('Couldn''t open SDL Audio : %s',[SDL_GetError])),'Error', MB_OK or MB_ICONHAND );
exit;
end;
end;
Die Parameter scheinen in diesem Falle wohl nutzlos zu sein, ich habe sie in meinem Code einfach entfernt und die Prozedur umbenannt.
Btw, was genau hat es mit diesem Callback auf sich?
Als nächstes dann abspielen.
Code:
var
audio_chunk : PUint8;
audio_len : Uint32;
audoi_pos : PUint8;
(* The audio function callback takes the following parameters:
stream: A pointer to the audio buffer to be filled
len: The length (in bytes) of the audio buffer
*)
procedure fill_audio( udata :pointer; stream : PUint8; len :integer);
So wirklich hilft mir das nicht weiter. Was davon genau triggert das Abspielen meines Sounds? Ach ja, im Moment liegt der Sound nur als wav Datei vor. Da ich aber nicht bei jedem Abspielen HDD I/Os verursachen will würde ich alle Sounds gerne schon früher laden. Da ich das bisher noch nicht in der Form gemacht habe würde ich außerdem gerne wissen wie man das am schlausten macht, sprich welcher Datentyp bietet sich an, sodass es einfach mittels SDL abspielbar ist? Ach ja, es sollte auch möglich sein mehrere Sounds gleichzeitig abzuspielen ohne zu warten bis der gerade aktive Sound fertig abgespielt wurde.
Wäre sehr dankbar für jede Hilfestellung, stehe doch sehr auf dem Schlauch
MfG MB
Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.