最近遇到这样一个问题:
需要静音播放一段视频,播放完毕后再恢复原来用户的设置。
功能点虽小,但需要考虑的地方挺多,所以记录下。
代码如下:
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);
}
}
网友评论