前言
最近做项目, 涉及到录音, 刚开始自测完全没问题, 也就没考虑那么多, 直到测试人员介入测试, 最后发现了问题, 那就是安卓的录音和iOS的录音不兼容, 具体就是安卓可以播放iOS的录音, iOS播放不了安卓的录音, 放出来都是滋滋啦啦的杂音, 由于对录音等方面的知识欠缺, 被搞的焦头烂额, 最后发现了问题, 也补充了一些录音方面的知识!
从安卓和iOS诞生起, 谷歌和苹果两家巨头公司就相爱相杀, iOS和安卓各种不兼容, 坑了我们广大程序猿!
安卓开发文档
上面说明了安卓支持的音频格式, 其中包括:AAC, AAC+, AMR-NB, AMR-WB, FLAC, MIDI, MP3, Opus, PCM/WAVE, Vorbis等;
苹果开发文档
上面说明了iOS支持的音频格式, 包括AAC, AC3, AIFC, AIFF, WAVE, MPEG等;
综上, 只能用ACC兼容两者, 特别需要安卓同事注意;
安卓代码:
1 | mRecorder = new MediaRecorder(); |
iOS代码
1 | NSDictionary *recordSetting = [NSDictionary dictionaryWithObjectsAndKeys: |
注意: 两端参数一定要一致! 一致! 一致! 重要的事情说三遍;
采样率
比特率
声音通道等参数一定要设置成一样的!
另外, AMR格式有两种, 一种是AMR-NB, 一种是AMR-WB, 这里一定要和iOS同步;