ALSAサウンドライブラリについて質問があります。
最初に、私のような質問に対する通常の回答は「JACKを使用する」であり、おそらくJACKを使用できないため、その回答は役に立たないことを述べておきます。私はAndroidデバイス( NDKではありませんが実際にはネイティブ)でネイティブLinuxプログラムを実行していますが、収集したものから、一部のlibcとposixには互換性がないため、JACKはAndroidでは機能しません。
質問:
1)a)キャプチャされたサンプルの読み取りとb)サンプルの再生のために、2つの異なるスレッドを使用できますか?私が見たすべてのALSA「全二重」の例では、ブロッキング機能を備えたサウンドカードからの読み取りと書き込みを交互に使用しています。これは、特にプログラムがそれ以上のことを行うことになっている場合は、あまりうまく機能しないようです。
2)私が理解したように、ALSAは、Windowsオーディオミキサーのように、さまざまなアプリケーションで再生されるオーディオをミキシングします。オーディオデバイスへの排他的アクセスを取得して、ダイナミックレンジのミキシングや劣化が発生することなく、私のアプリケーションがオーディオを再生する唯一のアプリケーションであることが保証されるようにすることは可能ですか?