さて、後でオーディオの入出力に使用する単純なオブジェクトを作成しています。両方のオブジェクトは独立して問題なく動作しますが、同じアプリケーションでそれらを使用しようとすると、衝突し、オーディオ入力オブジェクトが出力オブジェクトによってブロックされます。
出力オブジェクトは AudioUnitSessions を使用してサンプルをバッファーに渡し、オーディオを再生します。一方、入力オブジェクトは AudioQueue を使用してマイクからサンプルをフィードします。これは後で処理できます。
解決策は AudioUnitSession を非アクティブ化するのと同じくらい簡単だと思いますが、これは機能していないようです。私はこれを次の方法で行っています
AudioSessionSetActive(true) or AudioSessionSetActive(false)
上記は、アクティブ化しようとしているかどうかによって異なります。
入力オブジェクトを再作成しようとするたびに、OSStatus エラー番号 -50 で記録の初期化に失敗するため、これは明らかに機能しません。
これを回避する方法、または同じアプリケーションでのオーディオ入力と出力の簡単な方法を知っている人はいますか?