[ Android Audio 篇 ] 高通平台 Android AudioRecord 多通道录音
这里写自定义目录标题
- 1. 概述
- 2. 系统配置
-
- 2.1 audio_policy_configuration.xml
- 3. 系统录音接口
- 4. 高通平台多通道遇到的问题
-
- 4.1 APK录音4ch发现其中两通道空数据
- 4.2 APK录音 Source 设置为 AudioSource.MIC 录音失败, CAMCORDER 录音正常
- 5. 参考
1. 概述
最近项目节奏很快,平时遇到很多的问题都没有及时总结分享出来。这周末解决了高通平台多通道录音过程中遇到的问题,分享记录下。
2. 系统配置
2.1 audio_policy_configuration.xml
配置文件中channelMasks字段增加 ch AUDIO_CHANNEL_INDEX_MASK_3 和 AUDIO_CHANNEL_INDEX_MASK_4 配置, 这个定义在 /system/media/audio/include/system/audio-base.h
<mixPort name="primary input" role="sink" maxOpenCount="2" maxActiveCount="2"><profile name="" format="AUDIO_FORMAT_PCM_16_BIT"samplingRates="8000 11025 12000 16000 22050 24000 32000 44100 48000"channelMasks="AUDIO_CHANNEL_IN_MONO AUDIO_CHANNEL_IN_STEREO AUDIO_CHANNEL_IN_FRONT_BACK AUDIO_CHANNEL_INDEX_MASK_3 AUDIO_CHANNEL_INDEX_MASK_4"/>
</mixPort>
3. 系统录音接口
APK 录音调用的 AudioRecord的接口, 构造 AudioRecord 的方式有两种:
- new AudioRecord();
- AudioRecord.Builder();
// 核心是 setChannelIndexMask的设置以及 buffer size 的设置int SAMPLE_RATE = 48000