4

AVAudioRecorder を使用して、NSMutableData オブジェクトを使用し、appendData メソッドを使用して、以前のレコーダー ファイルにそのデータを追加して録音を停止することにより、15 秒ごとにオーディオ ファイルを保存しています。

その後、同じ方法でもう一度録音するので、録音は「連続」です。問題は、[recorder stop] を実行するとすぐに、指定された URL でオーディオ ファイルが保存/閉じられることです。NSData オブジェクトにそれを入力して NSMutableObject に追加し、同じファイル URL に書き込むことができるので、これで問題ありません。

問題は、オーディオの最初の部分のみを再生するため、ヘッダー情報に何か問題があることです。

私の質問は、2 つのオーディオ ファイルを結合し、AVAudioPlayer に 1 つのファイルとして表示させるだけの簡単な方法でも、ファイルを適切に結合するにはどうすればよいかということです。最初の録音に 2 番目の録音を追加すると、おそらくファイルの長さ/期間のヘッダー情報が台無しになっていると思います。

何か案は?

4

2 に答える 2

1

オーディオ ファイルには、ファイル内のサンプル数とデータ チャンクの長さを指定するヘッダーがあります。既存のファイルに追加されたデータは無視されます。これが、最初の録音のみを聞く理由です。

生データであるかのように、オーディオ ファイルを単に追加または連結することはできません。各ファイルからサンプル データ チャンクを抽出し、データだけを連結してから、データ長とサンプル数のフィールドが正しく入力された新しいファイル ヘッダーを書き込み、最後に連結されたサウンド データ チャンク自体を書き込む必要があります。

于 2009-12-30T23:51:39.480 に答える
1

iPhone Audio API を使用すると、非常に大きな/長いオーディオ ファイルを、複雑すぎる操作を行うことなく作成できます。SpeakHere のサンプル コードを参照してください。時間の経過とともに大きくなるサウンド ファイルが作成され、おそらく非常に大きなサイズになります。

于 2009-12-31T00:09:39.923 に答える