0
源數據是AMR-NB 5.9kbit/S(AMR_5.90)如何填充AudioStreamBasicDescription爲AMR播放
我試過下面的設置(與36種),但我得到不外乎垃圾音頻。有誰知道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:
採樣頻率8kHz的/ 13位(160個樣本爲20ms的幀)
生成的95幀的長度,103,118,134 ,148,159,用於比特率204,或244比特4.75,5.15,5.90,6.70,7.40,7.95,10.2或12.2千比特/秒,分別
並從這裏所述數據結構描述:
?如果您使用的是音頻文件流,您是否無法使用AudioFileStreamGetProperty獲取填充的ASBD? – warrenm 2010-05-19 20:17:50
我從記憶源使用試圖回放: AudioQueueNewOutput AudioQueueAllocateBuffer AudioQueueEnqueueBuffer AudioQueuePrime AudioQueueStart – Peter 2010-05-20 06:10:16
我設法將數據寫回一個文件,並重新獲得財產提到閱讀,mFramesPerPacket回來爲2400這看起來似乎不太可能,但將該值(以及其他值的許多變體)反饋到ASBD結構中並沒有幫助。 – Peter 2010-05-22 12:29:43