iOS ではkAudioUnitSubType_AudioFilePlayer
、AUNode によってラップされ、オーディオ グラフ内のマルチチャンネル ミキサーとリモート IO (出力) に接続されたタイプの Audio Unit があります。
グラフの再生中にファイルをループし、AudioFilePlayer がファイルの最後に到達したタイミングを判断できるようにして、ループの次の反復を開始する前に操作を実行できるようにします。
AudioUnitProperties.h を確認すると、完了コールバックがありmCompletionProc
ますが、実際にオーディオの再生が終了したときではなく、ディスクがファイルを読み取って再生をスケジュールしたときにのみ呼び出されます。
そこで、オーディオ (パケット/フレーム) の長さをプロパティとして保存し、ミキサーの別の入力に接続された入力コールバックで、ファイルの最後にいるかどうかを確認することを検討しました。しかし、そのコールバックはすべてのフレームで呼び出されるわけではないため、ファイルの実際の末尾を見逃す可能性があります。
これにどのようにアプローチできますか?