近年来手机语音相关功能迅猛发展,涌现了各种语音类app,比如华为的小艺、百度的小度、小米的小爱等等还有很多,手机要使用语音就一定会用到麦克风,麦克风就是用来采集我们的声音再转换成指令去命令手机实现相关功能,所以如何有效的去使用麦克风就会变得非常重要,下面我从安卓开发的角度来阐述一下怎么去处理麦克风冲突问题。
下面来简单说下手机语音功能实现的相关流程:
简单了解了手机语音功能实现的相关流程之后,我们来说说麦克风冲突问题是怎么产生的,因为我们在手机中有多款应用会使用到手机的麦克风,比如手机录音的时候,开启地图导航的时候,手机语音助手使能的时候,很多应用都会使用到麦克风,但是手机麦克风同一时间点只能处理单个事件,不能并发响应多个事件,所以我们在使用手机麦克风功能的时候一定要确保麦克风处于闲置状态,否则麦克风的录音功能将无法使用。
安卓系统音频分很多种状态,默认音频就是DEFAULT,常用麦克风就是MIC,通话上下行分别是VOICE_UPLINK和VOICE_DOWNLINK,电话响应VOICE_CALL,摄像头麦克风CAMCORDER,一般系统处于MIC下就证明麦克风被占用了。
AudioSource.DEFAULT:默认音频来源
AudioSource.MIC:麦克风(常用)
AudioSource.VOICE_UPLINK:电话上行
AudioSource.VOICE_DOWNLINK:电话下行
AudioSource.VOICE_CALL:</