1

iPhoneで音楽ミキシングアプリを開発しています。それは音楽をミックスし、ユーザーはそこから新しい音楽を作成できます。この最後の音楽を録音する必要があります。AVAudiorecorder を使用してこれを録音しました。しかし、変化はありません。マイクからの音を録音できますが、アプリの音を録音する必要があります。

オーディオ キューのコールバック機能を使用してオーディオを録音しました。しかし、アプリを実行すると、アプリから音声が聞こえますが、録音された音声からは何も聞こえませんでした。マイクで録音した音声が聞こえるので、録音には問題ありません。しかし、マイクからの音声入力ではなく、iPhone の音声出力を録音できるオフライン レコーダーが必要です。iPod touch (マイクなし) を使用してオーディオを録音できるレコーダーが必要です。

何か助けはありますか?

4

1 に答える 1

0

別の方法で解決策を見つけました。2 つのオーディオ ユニットで構成されるオーディオ グラフを使用しました。デジタルミキサーと出力オーディオユニット。6 つの楽器を同時に演奏できるように、6 つのチャンネルを持つミキサーを作成しました。ユーザーが音楽を作成すると、コンテンツが保存され、オフライン レコーディング中に、保存された楽器がミキサーにシーケンスされます。

パフォーマンスを向上させるために、新しいオーディオ ファイルまたはインストゥルメント ファイルをロードする間、オーディオ グラフを停止します。ファイルをロードした後、記録が再開されます。

ミキサーの入力再生機能では、入力バス番号に応じてオーディオパケットがミキサーに送られます。出力オーディオユニットの入力再生では、ミキサー出力を格納するために新しいバッファが割り当てられます。ミキサー出力は、オーディオ レンダリング機能を使用して作成されました。私はオーディオ入力バッファを変更していなかったので、アプリの外に音はありません。最後に、オフラインのオーディオレコーダーを手に入れました。

手順

  1. 録音および再生モードを使用してオーディオ セッションを作成する
  2. ミキサーとオーディオ出力ユニットを使用してオーディオ グラフを作成します。
  3. ミキサー チャネルまたは入力バス番号 (オーディオ ストリームの数) を構成します。
  4. ミキサーとオーディオユニットの入力再生メソッドを作成します。
  5. ソースと宛先のオーディオ形式をオーディオ ユニットの入力バスと出力バスに構成します。
  6. 宛先形式を使用してオーディオ ファイルを作成します (AAC エンコーディングの場合は、AAC エンコーディングのサポートを確認します)。
  7. オーディオ ファイルを取得し、指定されたチャネルのオーディオ パケットを提供する方法を開発します。
  8. ミキサーのオーディオ入力再生で、オーディオファイルのフェッチを設定します。
  9. 出力ユニットのオーディオ入力再生では、オーディオ レンダリング関数を使用して、ミキサー出力を新しいオーディオ バッファにフェッチします。オーディオ バッファを開いているオーディオ ファイルに保存します。
  10. オーディオ グラフ停止メソッドを使用して録音を一時停止し、オーディオ グラフ開始メソッドを使用して録音を再開します。この間に、新しいサウンド ファイルのフェッチを構成します。
  11. 最後に録音を停止し、オーディオ ファイルを閉じます。
于 2010-06-28T05:54:10.480 に答える