我想知道是否有办法检查音频的播放位置(内置扬声器,耳机插孔,单声道,立体声等)和Android设备?
感谢。
答案 0 :(得分:3)
是的,使用AudioManager课程,您可以检查当前是否连接了有线或无线耳机。如果不是,那么您可以假设您发出的声音将由设备的扬声器播放。
这些方法将帮助您完成您想要做的事情:
希望这能回答你的问题!
答案 1 :(得分:0)
接受的答案将完全起作用,但是他们确实弃用了这些方法,而推荐使用audioManager.getDevices()
。这是一个示例,说明如何使用新方法检查有线耳机。
AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
if (audioManager != null) {
for(AudioDeviceInfo deviceInfo : audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS)){
if(deviceInfo.getType()==AudioDeviceInfo.TYPE_WIRED_HEADPHONES
|| deviceInfo.getType()==AudioDeviceInfo.TYPE_WIRED_HEADSET){
return true;
}
}
}
现在请记住,getDevices()
仅在API 23+中可用,因此覆盖范围存在差距,如果您的minSdk低于23,则可能需要使用已接受答案中显示的不赞成使用的方法。>