仅在播放音乐时增加媒体播放器音量

时间:2018-04-23 05:46:33

标签: android audio android-audiomanager

我有音频只在满足某些条件时播放。我想仅在播放时增加音量,一旦完成,音量应设置为默认系统音量。目前我将音量设置为最大值,在音频播放时工作正常,但即使在音频播放完成后也将系统音量保持在该水平。这对于用户说来电话非常糟糕,这使得设备非常嘈杂。 我很困惑,实现这一目标。我还读到使用audioManager设置音量不是一个好习惯,它有副作用。

以下是我试图控制音量的内容:

public void resume() {

        AudioManager audioManager = (AudioManager) MobieFitSdkApplication.singleton().getSystemService(Context.AUDIO_SERVICE);
        if (player != null) {
            player.setAudioStreamType(AudioManager.STREAM_MUSIC);
            audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC), 0);
            player.setVolume(audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC), audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC));
        }

    }

那么我怎么才能在播放音频时增加音量?

2 个答案:

答案 0 :(得分:0)

- 首先要获得系统的当前数量:

AudioManager am = (AudioManager) getSystemService(AUDIO_SERVICE);
int volume_level= am.getStreamVolume(AudioManager.STREAM_MUSIC);
音频完成后或当您释放媒体播放器时

设置音频播放前的默认音量。

am.setStreamVolume(AudioManager.STREAM_MUSIC,volume_level,0);

答案 1 :(得分:0)

通过以上答案的帮助,我已经在我的问题中实现了我的要求。

首先我获得原始系统音量,一旦音频开始,我将系统音量设置为70%。

int originalVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
                    int maxDeviceVolume = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
                    float percent = 0.7f;
                    int seventyVolume = (int) (maxDeviceVolume*percent);
                    mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, seventyVolume, 0);

音频结束后,我将设备音量重置为原始音量。

mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, originalVolume, 0);