Android12 获取音频输出列表&设置音频输出通道

1.获取音频输出列表

有个需求是APP端能够获取所有音频输出列表,研究了很长时间源码,发现只有这个API合适。

AudioDeviceInfo[] devices = audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS);

这个API能够获取到设备上所有可用的输出,且APP可以调用。

2.设置音频输出通道

需要在framework层修改,找一个Manager或者自己写一个Manager,添加以下API方法。

    @Override
    public void setPreferredDevice(int type) {
        AudioDeviceInfo device = null;
        AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
        AudioDeviceInfo[] devices = audioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS);
        for(AudioDeviceInfo dev : devices) {
            if(dev.getType() == type && type != 0){
                device = dev;
                break;
            }
        }
        if (device == null) {
            Log.i(TAG, "Skip se

猜你喜欢

转载自blog.csdn.net/guanmingyuangmy/article/details/130288712