【问题标题】:Android: How to check phone audio output?Android:如何检查手机音频输出?
【发布时间】:2012-01-31 19:54:00
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: android android-audiomanager


    【解决方案1】:

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

    这些方法将帮助您完成您正在尝试做的事情:

    希望这能回答你的问题!

    【讨论】:

    • 领先我 2 秒。很好的答案。
    【解决方案2】:

    接受的答案将完全有效,但他们确实弃用了这些方法,转而支持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,您可能需要使用已接受答案中显示的已弃用方法。

    【讨论】:

    • 我得到了可用的设备,但是我怎么知道当前正在播放哪些设备?
    猜你喜欢
    • 2013-09-23
    • 2016-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-24
    • 2013-07-14
    相关资源
    最近更新 更多