トラックの最後から操作されたバッファを取得し、それらを出力ファイルの最初に書き込むことで、オーディオを介した後処理パスを保存できる状況があります。
私はもともと、を使用して書き込みポインタをリセットすることでこれを実行できると考えていExtAudioFileSeek
ましたが、ドキュメントでこの行を見たときに実装しようとしていました
Ensure that the file you are seeking in is open for reading only. This function’s behavior with files open for writing is undefined.
これで、書き込み用にファイルを閉じてから再度開くことができることがわかりましたが、プロセスはそれよりも少し複雑です。私が行っている操作の一部は、書き込みを行っているファイルにあるバッファーからの読み取りです。全体的なプロセスは次のようになります。
- 読み取ったファイルの最後からバッファを読み取ります
- 書き込みファイルの先頭からバッファを読み取ります
- バッファを処理します
- 手順2で読み取ったバッファを上書きして、書き込みファイルの先頭にバッファを書き戻します。
論理的には、これは1パスで問題なく実行できます。プログラム的に、データを破壊したり、効率を低下させたり(目標の反対)、宇宙を爆縮させたりすることなく、同じことをどのように達成できますか?