アプリの使用中にユーザーが再生、再配置、編集などを行う一連のサウンドがあります。ユーザーが作業を終了したら、作業を保存して mp3 に記録できるようにしたいと考えています。
スピーカーを通して再生し、マイクで録音したくありません。音質が低下し、干渉が発生するためです。追加のハードウェアやコンピューターを必要としない方法は考えられません。
彼らのデバイスだけを使用してこれを行うにはどうすればよいですか?
まあ、AVFoundation ではできないと思います。
私の提案は、Audio Units を使用して、すべてのインタラクションを音声グラフに変換することです。ある時点で、RemoteIO にレンダリング通知を設定して、スピーカーにサウンドをレンダリングするたびにコールバックを取得し、それらのフレーム/パケット/データをファイルに書き留めることができます。
おそらく、MP3 よりも AAC(m4a) を使用することをお勧めします。私は MP3 があまり好きではありません。正直なところ、SDK が MP3 へのエンコードを提供していないことを知っている限り、おそらくライセンスの問題が原因です。私は間違っているかもしれません。以下のサンプル コードを確認してください。これはおそらく、Web 上のオーディオ ユニットで見つかる最高のサンプル コードです。