ボイス レコーダーには、圧縮されていないリニア PCM オーディオは必要ありません。圧縮されAMR
ていれば問題ありません。オーディオを録音するために構築された iPhone フレームワークは非常にシンプルですが、オーディオ形式 (Apple から提供されたもの) をセットアップするために私が見つけた唯一の例は、LinearPCM を使用しています。他のさまざまな値の組み合わせを試しましたが、何も機能しないようです。
実際に記録するコードを持っている人はいますAMR
か?
編集: AMR 形式は、データ型を設定するためのオプションの 1 つですが、他のオプション (パケット サイズ、フレーム サイズなど) は、何を設定しても一致しないようです。
編集:これが私がPCMバージョンのために持っているものです:
/*
If we want to use AMR instead of PCM:
AMR Format:
Sampling Frequency: 8 kHz/13-bit (160 samples for 20 ms frames), filtered to 200-3400 Hz
eight source codecs : 12.2, 1.2, 7.95, 7.40, 6.70, 5.90, 5.15, 4.75 kbit/s
generated frame length: 244, 204, 159, 148, 134, 118, 103, 95 bits per frame
*/
format->mFormatID = kAudioFormatLinearPCM;
format->mSampleRate = 8000.0; //8 kHz
format->mFramesPerPacket = 1; //1 frame per packet
format->mChannelsPerFrame = 1; //Mono
format->mBytesPerFrame = 2; //8/bits per frame (round up)
format->mBytesPerPacket = 2; //Same as bytes per frame
format->mBitsPerChannel = 16; //16-bit audio
format->mReserved = 0; //always 0
format->mFormatFlags = kLinearPCMFormatFlagIsBigEndian |
kLinearPCMFormatFlagIsSignedInteger |
kLinearPCMFormatFlagIsPacked;