packages/apps/SoundRecorder/src/com/android/soundrecorder/SoundRecorder.java
if (AUDIO_AMR.equals(mRequestedType)) {
mRemainingTimeCalculator.setBitRate(BITRATE_AMR);
mRecorder.setChannels(1);
mRecorder.setSamplingRate(SAMPLERATE_8000);
mRecorder.startRecording(MediaRecorder.OutputFormat.RAW_AMR, ".amr", this, audioSourceType, MediaRecorder.AudioEncoder.AMR_NB);
};
从上述代码段API中找到以下几个区分点
1. 采样率
2.码率
3. 声道数量
4. AudioSourceType
实测下来,只有通过AudioSourceType具有实操性。
以下是完整的验证代码diff文件,自测实现内部外部Codec上麦克风切换设计。
不过mixer_path.xml文件,只是调试时使用的开发板,是不带外部Codec的,这个并不影响该功能开发。
重点关注use
本文介绍了在Android中切换内部和外部麦克风的方法,关键在于AudioSourceType的选择。通过使用不同的AudioSourceType,实测可以实现内外部Codec上麦克风的切换。文中提供了一个完整的验证代码diff文件,并强调了关注usecase的切换是核心。尽管在mixer_path.xml文件中涉及的设备可能不包含外部Codec,但这不影响该功能的开发。自测结果显示,不同file_type和audiosource对应了不同的device,例如3gpp使用handset-mic,而amr使用dmic-endfire。
订阅专栏 解锁全文
4732

被折叠的 条评论
为什么被折叠?



