タグ付けされた質問 「openal」

2
C ++用のOpenal SDKはどこで入手できますか?
私が見ているOpenALサイトは、古くて壊れたシェアポイントポータルであり、ダウンロードセクションのSDKは、リクエスト時に500 htmlコードを提供します。 http://connect.creativelabs.com/openal/Downloads/OpenAL11CoreSDK.zip 私はソフトペディアでOpenAL SDKを見つけましたが、ヘッダーがありますが、alu.hまたはalut.hはありません。これは、私が見ているチュートリアルではwavなどをロードするために明らかに必要です 私は何が欠けていますか?OpenALが死んだか何か?
12 openal 

1
OpenALバッファーのバインドを解除して削除するにはどうすればよいですか?
OpenALを使用してサウンドを再生しています。私は、バッファIDを取得し、以前に割り当てたプールからソースに割り当てて再生する、ファイアアンドフォーゲットプレイ機能を実装しようとしています。ただし、オブジェクトの有効期間には問題があります。 OpenGLでは、削除関数は自動的にバインドを解除する(テクスチャなど)か、最終的にバインドされなくなったときに自動的に削除する(シェーダーなど)ため、通常、削除の管理は簡単です。ただし、alDeleteBuffers代わりにAL_INVALID_OPERATION、バッファがまだソースにバインドされている場合、単に失敗します。 OpenALバッファーの再生を終了し、自動的にバインドを解除して実際にそれらを許可する慣用的な方法はありますか?バッファ管理をソースプールにより深く関連付ける必要がありますか(たとえば、バッファを削除するには、割り当てられているすべてのソースもチェックする必要があります)。 同様に、バッファの再生が終了したときに、バッファをアンバインドする(削除はしない)慣用的な方法はありますか?無料のソースを探していたときに、バッファがまったく接続されているかどうかを確認するだけで、ソースの状態を確認する必要がなければいいのですが。 (私はC ++を使用していますが、Cのアプローチも問題ありません。GCd言語を想定し、ファイナライザを使用するアプローチはおそらく適用されません。)
12 openal 

1
OpenAL-alGetSourceiとAL_BUFFERS_PROCESSEDがジャンクを与える
この質問を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が、実際にはそれよりも具体的ではありません。プログラマーのガイドも同じです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.