この質問をSOに投稿しましたが、回答がありませんでした。多分誰かがここで私を助けることができます。
私は最近、WAVとOggのサウンドをOpenALでストリーミングする、うまく機能するプログラムを持っていました。次に、ソースオブジェクトとバッファオブジェクトをC ++クラスに抽象化することにしました。私はソースクラスまで行きました。処理されたバッファの数を返す私の関数は、に渡される整数を変更していませんalGetSourcei
。
int ALSource::GetBuffersProcessed() const {
ALint processed;
alGetSourcei(this->source, AL_BUFFERS_PROCESSED, &processed);
int error = alGetError();
if(error != AL_NO_ERROR)
return -1;
return processed;
}
私error
はそれが決して決して何でもないことを確認しましたAL_NO_ERROR
。コンストラクターでソースを生成します。
alGenSources(1, &source);
これによってエラーが発生することもありません。
これの実際の症状は、processed
宣言されているが初期化されていないことです。最終値は、最初のジャンク値です。(通常-8834824334のようなもの)。
これは予想される動作でしょうか?OpenAL仕様では、値はその値である必要があります0 - any
が、実際にはそれよりも具体的ではありません。プログラマーのガイドも同じです。
私はあなたが何を求めているのかを理解するためにこれを二度読まなければなりませんでした。これをより明確にするために質問を書き直すことを検討してください。
—
deft_code '07 / 07/27
@caspin、どの部分に問題がありますか?
—
Anthony、