2

AVAudioRecorder を使用して iPhone でオーディオを録音していますが、ファイルが大きすぎて EDGE ネットワーク上のサーバーにアップロードできません。オーディオを AMR 形式に圧縮できれば、元の PCM オーディオ ファイルに比べてサイズが大幅に縮小されることがわかりました。

Pure C で書かれた AMR エンコーディング & デコーディング ライブラリ (3GPP AMR Floating-point Speech Codec) を見つけました。現在、このライブラリを使用して WAVE を AMR に変換できますが、iPhone ではエンコーディング プロセスが長すぎます。1 分間の Wave ファイルをエンコードするのに 22 秒待たなければなりません。

エンコードの待機をなくすには、エンコードと一緒に録音する必要がありますが、AVAudioRecorder は、新しいファイルを作成することによってのみ録音機能を提供します。これを行う唯一の方法は、メモリ バッファを介して録音を提供する AudioQueue を使用することです。

問題は、Audio Queue と AMR ライブラリの 2 つを統合する方法がわからないことです。誰か助けてくれませんか?

4

1 に答える 1

1

Core Audioには、3GPP/ AMRのサポートが組み込まれています。ExtAudioFileまたは下位レベルのAudioConverterを使用します。

于 2011-08-11T17:58:54.100 に答える