AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi OpenAL - Exception beim Laden einer OggVorbis
Thema durchsuchen
Ansicht
Themen-Optionen

OpenAL - Exception beim Laden einer OggVorbis

Ein Thema von Jörn · begonnen am 26. Mär 2004
Antwort Antwort
Jörn

Registriert seit: 5. Sep 2003
Ort: Helmstedt
312 Beiträge
 
#1

OpenAL - Exception beim Laden einer OggVorbis

  Alt 26. Mär 2004, 19:03
Ich arbeite gerade eine Komponente um, mit der man Waves unter OpenAL abspielen kann. Diese soll das OggVorbis-Format unterstützen. So weit, so gut, ich bekomme aber eine Exception wenn ich eine Datei lade! Hier mein Code, der Original-Source stammt von Noeska:

Delphi-Quellcode:
type
  TALOggObject = class
  private
    _pos: array [0..2] of TALFloat;
    _vel: array [0..2] of TALFloat;
    _buffer: TALuint;
    _source: TALuint;
    _pitch: TALFloat;
    _gain: TALFloat;
    _loop: TALInt;
    _playing: boolean;
    _oggext: boolean;
  protected

  public
    constructor Create;
    destructor Destroy; override;
    procedure LoadFromFile(filename: string);
    procedure Update;
    procedure Play;
    procedure Pause;
    procedure Stop;
    property xpos: TALFloat read _pos[0] write _pos[0];
    property ypos: TALFloat read _pos[1] write _pos[1];
    property zpos: TALFloat read _pos[2] write _pos[2];
    property xvel: TALFloat read _vel[0] write _vel[0];
    property yvel: TALFloat read _vel[1] write _vel[1];
    property zvel: TALFloat read _vel[2] write _vel[2];
    property pitch: TALFloat read _pitch write _pitch;
    property gain: TALFloat read _gain write _gain;
    property loop: TALInt read _loop write _loop;
    property playing: boolean read _playing write _playing;
  end;
...
constructor TALOggObject.Create;
begin
  //checks if OggVorbis is avaible, initializes Ogg
  _oggext:=alIsExtensionPresent('AL_EXT_vorbis');
  // create a buffer
  AlGenBuffers(1, @_buffer);
  if alGetError <> AL_NO_ERROR then raise Exception.Create('Cannot create Buffer');
  // create a source
  AlGenSources(1, @_source);
  if alGetError <> AL_NO_ERROR then raise Exception.Create('Cannot create Source');
  // set default values
  gain := 1.0;
  pitch := 1.0;
  xpos := 0.0;
  ypos := 0.0;
  zpos := 0.0;
  xvel := 0.0;
  yvel := 0.0;
  zvel := 0.0;
end;
...
procedure TALOggObject.LoadFromFile(filename: string);
var
  oggfile: TMemoryStream;
begin
  oggfile := TMemoryStream.Create;
  oggfile.LoadFromFile(filename);
  //assign to the buffer
  AlBufferData(_buffer, AL_FORMAT_VORBIS_EXT, oggfile.Memory, oggfile.Size, 44100);
  oggfile.Free;
  if alGetError <> AL_NO_ERROR then raise Exception.Create('Cannot assign wave data to buffer');
  //assign the buffer to the source
  AlSourcei ( _source, AL_BUFFER, _buffer);
end;
Die Exception kommt in der Zeile
AlBufferData(_buffer, AL_FORMAT_VORBIS_EXT, oggfile.Memory, oggfile.Size, 44100); Hoffe mir kann jemand helfen. MfG

EDIT: Sorry Jungs hab den Fehler gefunden. Lag an einem Fehler in der Anwendung, in der ich diese Komponente getestet habe. Es kommt zwar immer noch kein Ton, aber die Exception ist weg. Thema kann geschlossen werden.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz