如何为AMR播放填充AudioStreamBasicDescription

时间:2010-05-19 14:23:13

标签: iphone objective-c amr

源数据为AMR-NB 5.9kbit / s(AMR_5.90)

我已经尝试过以下设置(以及十几种变体),但我只能获得垃圾音频。有谁知道AMR的正确设置?

 AudioStreamBasicDescription asbd;
 asbd.mSampleRate = 8000.0;
 asbd.mFormatID = kAudioFormatAMR;
 asbd.mFormatFlags = 0;
 asbd.mBytesPerPacket = 15;  // (118>>3)
 asbd.mFramesPerPacket = 1;
 asbd.mBytesPerFrame = 15;
 asbd.mChannelsPerFrame = 1;
 asbd.mBitsPerChannel = 118;  //tried also 0 and 13
 asbd.mReserved = 0;

基于维基百科的AMR信息:

采样频率8 kHz / 13位(20个帧的160个采样)

分别为比特率4.75,5.15,5.90,6.70,7.40,7.95,10.2或12.2 kbit / s生成95,103,118,134,148,159,204或244位的帧长度

这里的数据结构描述:

http://developer.apple.com/iphone/library/documentation/MusicAudio/Reference/CoreAudioDataTypesRef/Reference/reference.html#//apple_ref/doc/c_ref/AudioStreamBasicDescription

1 个答案:

答案 0 :(得分:1)

iOS降低了AMR支持,因此新的解决方案是使用OpenCoreAMR将数据转换为PCM