3

我想知道是否有办法检查音频在哪里播放(内置扬声器、耳机插孔、单声道、立体声等)和 Android 设备?

谢谢。

4

2 回答 2

3

是的,使用AudioManager类,您可以检查当前是否连接了有线或无线耳机。如果不是,那么您可以假设您发出的声音将由设备的扬声器播放。

这些方法将帮助您完成您想要做的事情:

希望这能回答你的问题!

于 2012-01-31T20:06:34.350 回答
1

接受的答案将完全有效,但他们确实不赞成使用这些方法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,您可能需要使用已接受答案中显示的不推荐使用的方法。

于 2020-02-13T18:10:15.037 回答