2017-02-10 15 views
0

オーディオユニットを使用してオーディオを録音し、そのデータをHTTP経由でPOSTするために使用しているバインドされたペアの一部であるNSOutputStreamに書き込みます。私の問題は、コールバックを記録するオーディオユニットとNSOutputStream hasSpaceAvailableコールバックが完全に独立しているため、バッファアンダーランが非常に迅速に発生します。これら2つを同期させる方法や、NSOutputStreamにオーディオレコーディングコールバックを直接マッピングする方法はありますか?AudioUnitコールバックとNSOutputStreamの同期

答えて

0

Apple DTSによれば、リアルタイムスレッドAudio Unitコールバック内でネットワーク化や他の同期を行うことは想定されていません。

しかし、ネットワークストリームのhasSpaceAvailableコールバックに直接データを投稿する必要はありません。コールバック関数が終了した後、データが利用可能になったときにスペースが利用可能であることがわかったので、データをポストすることができます。循環キューまたはFIFOに余分なオーディオデータをバッファリングすることもできます。これにより、通常、一部のデータをネットワーク速度の変動と遅延ジッタをカバーするために送信できるようになります。

関連する問題