3

2 枚のオーディオ カードを搭載したコンピューターで Linux アプリケーションを開発していますが、それぞれ独自のコンテキストで OpenAL で両方を同時に使用したいと考えています。OpenAL の列挙拡張である alcGetString(NULL, ALC_DEVICE_SPECIFIER) を呼び出して、可能な出力デバイスのリストを取得すると、リストは「ALSA ソフトウェア」と「OSS ソフトウェア」のみで構成されます。これらはソフトウェア デバイスの OpenAL のビューにすぎないことはわかっているので、これらのいずれかを選択すると、OpenAL は ALSA または OSS で構成されたデフォルト デバイスにオーディオを出力するだけです。可能かどうかさえわかりませんが、OpenAL コンテキストのオーディオ出力を特定のデバイスに転送する方法はありますか? このようにして、デバイスごとに 1 つずつ、2 つのコンテキストを作成し、それぞれに個別のオーディオを送信できました。

ありがとう、-アル

4

1 に答える 1

6

今日、いくつかのテストを行い、答えを見つけました。完全なリストを取得するには、引数 ALC_ALL_DEVICES_SPECIFIER を指定して alcGetString を呼び出す必要があるようです。単純な変更ですが、この機能に関する OpenAL のドキュメントは、せいぜい曖昧で、最悪の場合誤解を招くものです。OpenAL 1.1仕様のセクション9.5と、OpenAL Programmer's Guideのサブセクション「Creative LabsのOpenALへの拡張」->「すべての拡張の列挙」->「デバイス名の取得」を参照して、私の意味を確認してください。

OpenAL ドキュメント: http://connect.creativelabs.com/openal/Documentation/Forms/AllItems.aspx

于 2010-07-28T22:55:23.263 に答える