Einzelnen Beitrag anzeigen

Chefx

Registriert seit: 13. Jun 2009
Ort: Radebeul
241 Beiträge
 
Turbo Delphi für Win32
 
#1

OpenAL: Ich höre nix :-D

  Alt 28. Jan 2010, 20:25
Hey DPs,

ihr werdet denken ich hab nicht mehr alle Tassen im schrank .
Ich hab angefangen mit OpenAL zu programmieren (tut:http://www.noeska.com/doal/) aber wenn ich das Programm dann fertig hab kommt kein ton(voll aufgedreht).
Ich hab schon die Zeile:
AlSourcef ( source, AL_GAIN, 1.0 ); // mit 0.5 und 10 probiert verändert aber es kommt nix raus
Dann dachte ich ich hab die Lautsprecher lautlos. War auch nicht das Problem.
Da kann es ja nur noch am Code liegen.

Delphi-Quellcode:
uses ... , openal;
...
var
  Form1: TForm1;
  buffer: TALuint;
  source : TALuint; Quelle: TALuint;
  sourcepos: array [0..2] of TALfloat= ( 0.0, 0.0, 0.0 );
  sourcevel: array [0..2] of TALfloat= ( 0.0, 0.0, 0.0 );
  listenerpos: array [0..2] of TALfloat= ( 0.0, 0.0, 0.0);
  listenervel: array [0..2] of TALfloat= ( 0.0, 0.0, 0.0);
  listenerori: array [0..5] of TALfloat= ( 0.0, 0.0, -1.0, 0.0, 1.0, 0.0);

...

procedure TForm1.Button1Click(Sender: TObject);
begin
  AlSourcePlay (source);
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  argv: array of PalByte;
  Format: TALEnum;
  Größe: TALSizei;
  Frequenz: TALSizei;
  loop: TALInt;
  Daten: TALVoid;
begin
  InitOpenAL;

  AlutInit (nil, argv);

  AlGenBuffers (1, @ buffer);
  AlutLoadWavFile ( 'ding.wav', Format, Daten, Größe, Frequenz, loop);
  AlBufferData (buffer, Format, Daten, Größe, Frequenz);
  AlutUnloadWav (Format, Daten, Größe, Frequenz);

  AlGenSources (1, @ source);
  AlSourcei ( source, AL_BUFFER, buffer);
  AlSourcef ( source, AL_PITCH, 1.0 );
  AlSourcef ( source, AL_GAIN, 1.0 );
  AlSourcefv ( source, AL_POSITION, @sourcepos);
  AlSourcefv ( source, AL_VELOCITY, @sourcevel);
  AlSourcei ( source, AL_LOOPING, loop);

  AlListenerfv (AL_POSITION, @listenerpos);
  AlListenerfv ( AL_VELOCITY, @listenervel);
  AlListenerfv ( AL_ORIENTATION, @listenerori);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  AlDeleteBuffers (1, @ buffer);
  AlDeleteSources(1, @source);
  AlutExit();
end;
Ich hab kein Plan woran es liegt.

Ich danke für alle antworten die ich bekomme

MfG
Chefx
ein Sprichwort für Programmierer:
"Viele wege fürn zur EXE, aber ob sie funktioniert ist die andere Frage."
schau mal bei www.xlite.de.tc vorbei
  Mit Zitat antworten Zitat