2011-03-01 8 views
0

これは非常に単純な要求かもしれないので、そうであれば謝ります。AVAudioRecorderを使用してオーディオの最後の10秒のみを記録する方法はありますか?

私はAVAudioRecorderを使用して、iPhoneのマイクからサウンドを録音しています。現在私はこれをファイルに保存しています。ユーザーがボタンをタップして再生すると、録音が​​停止されます。

私の質問は、オーディオレコーダーが最後の10秒間の音声しか保存しないようにする方法です。

私はおそらくプレイヤーに最後の10秒間だけ再生させることができますが、録音されたオーディオファイルが巨大にならないようにしたいと思います。私は最後の10秒を記録するのが好きです。

答えて

0

AVAudioRecorder APIを使用しないでください。あなたがしたいことはできません。 Audio Queue API(または多分RemoteIO Audio Unit)を使用して、10秒間の循環バッファにサンプルを記録します(これは1メガバイト未満です)。 WAVE/RIFFファイルのヘッダーに続いて.wavファイルにサンプルを書き出すときに、この循環バッファを展開します。

+0

こんにちはhotpaw2、このアドバイスありがとうございます。申し訳ありませんが痛みですが、私がオーディオを再生する前に、そのピッチを変更する必要があります。 AudioQueueを使用してこれを行うことはできますか、または私はopenALを使用する必要がありますか? – bennythemink

+0

OpenAL APIには現在、組み込みのリサンプラが含まれています。または、独自のリサンプリングコードを記述し、Audio Queue APIを使用することもできます。 – hotpaw2

+0

私は私自身のリサンプラを書くのに十分なオーディオを理解していないのではないかと恐れているので、私はただopenalを使うと思います:)あなたのアドバイスをもう一度感謝しますhotpaw2 – bennythemink

関連する問題