كيفية ملء AudioStreamBasicDescription لتشغيل AMR
-
30-09-2019 - |
سؤال
بيانات المصدر هي 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 كيلو هرتز/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 كيلو بايت/ثانية ، على التوالي ، على التوالي
ووصف بنية البيانات من هنا:
المحلول
أسقط iOS دعم AMR ، وبالتالي فإن الحل الجديد هو استخدام OpenCoreamR لتحويل البيانات إلى PCM
لا تنتمي إلى StackOverflow