Как заполнить AudioStreamBasicDescription для воспроизведения AMR - PullRequest
0 голосов
/ 19 мая 2010

исходные данные - AMR-NB 5,9 кбит / с (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 кГц / 13 бит (160 выборок для кадров 20 мс)

Генерирует длину кадра 95, 103, 118, 134, 148, 159, 204 или 244 битов для скоростей 4,75, 5,15, 5,90, 6,70, 7,40, 7,95, 10,2 или 12,2 кбит / с соответственно

И описание структуры данных отсюда:

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

1 Ответ

1 голос
/ 14 ноября 2011

iOS отказалась от поддержки AMR, поэтому новое решение заключается в использовании OpenCoreAMR для преобразования данных в PCM

...