android静音接口

2020-10-22  本文已影响0人  dmcdmc

最近遇到这样一个问题:

需要静音播放一段视频,播放完毕后再恢复原来用户的设置。
功能点虽小,但需要考虑的地方挺多,所以记录下。
代码如下:

    private boolean mUserIsMute = false;//true: 静音 false:非静音
    //静音控制
    public void silentSwitch(boolean isMute) {
        try {
            boolean muteFlag = false;
            AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
                //获取当前音乐多媒体是否静音
                muteFlag = audioManager.isStreamMute(AudioManager.STREAM_MUSIC);
                if (isMute) {
                    mUserIsMute = muteFlag;
                    if (!muteFlag) {
                        audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                                AudioManager.ADJUST_MUTE, 0);//设为静音
                    }
                } else {
                    if (muteFlag && !mUserIsMute) {
                        audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                                AudioManager.ADJUST_UNMUTE, 0);//取消静音

                    }
                }
            } else {
                //获取当前音乐多媒体是否静音
                muteFlag = audioManager.getRingerMode() != RINGER_MODE_NORMAL;
                if (isMute) {
                    mUserIsMute = muteFlag;
                    if (!muteFlag) {
                        audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);//设为静音
                    }
                } else {
                    if (muteFlag && !mUserIsMute) {
                        audioManager.setRingerMode(RINGER_MODE_NORMAL);//取消静音
                    }
                }
                audioManager.getStreamVolume(AudioManager.STREAM_RING);
            }
        } catch (Exception e) {
            Log.e(TAG, "silentSwitch: " + e);
        }
    }

上一篇下一篇

猜你喜欢

热点阅读