【发布时间】:2012-01-31 19:54:00
【问题描述】:
我想知道是否有办法检查音频在哪里播放(内置扬声器、耳机插孔、单声道、立体声等)和 Android 设备?
谢谢。
【问题讨论】:
标签: android android-audiomanager
我想知道是否有办法检查音频在哪里播放(内置扬声器、耳机插孔、单声道、立体声等)和 Android 设备?
谢谢。
【问题讨论】:
标签: android android-audiomanager
是的,使用AudioManager 类,您可以检查当前是否连接了有线或无线耳机。如果不是,那么您可以假设您发出的声音将由设备的扬声器播放。
这些方法将帮助您完成您正在尝试做的事情:
希望这能回答你的问题!
【讨论】:
接受的答案将完全有效,但他们确实弃用了这些方法,转而支持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,您可能需要使用已接受答案中显示的已弃用方法。
【讨论】: