Android AudioManager:如何取消音乐流静音并恢复原音量
恢复音频静音前的音量水平
要解决取消静音并恢复原音量的问题,关键是在静音前先保存当前的音乐流音量,后续直接用这个保存的值恢复即可,具体实现如下:
实现步骤
保存静音前的音量
在执行静音操作前,先获取并保存当前STREAM_MUSIC的音量值:// 获取系统音频管理器实例 AudioManager audioManager = (AudioManager) ((Activity)mActivity).getSystemService(Context.AUDIO_SERVICE); // 保存静音前的音乐流音量,可将此变量设为类成员变量以便后续调用 int preMuteVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);执行静音操作(你的原有代码)
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 0, 0);取消静音并恢复原音量
当需要恢复时,直接传入之前保存的音量值:// 恢复到静音前的音量水平 audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, preMuteVolume, 0);
注意点
- 要保证保存音量的变量
preMuteVolume的生命周期覆盖静音到恢复的全过程,比如声明为类的成员变量,避免被GC回收导致值丢失。 - 如果有需要,可以额外处理用户在静音期间手动修改系统音量的场景,但常规需求下直接使用保存的原值即可满足要求。
内容的提问来源于stack exchange,提问作者Isuru Gunasekara
相关产品推荐
相关产品推荐

