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

Android 仅在播放音乐时增加媒体播放器的音量,android,audio,android-audiomanager,Android,Audio,Android Audiomanager,我有只在满足某些条件时播放的音频。我只想在播放时增加音频音量,一旦播放结束,音量应设置为默认系统音量。目前,我正在将音量设置为最大,这在播放音频时可以正常工作,但即使在音频结束后,系统音量也会保持在该水平。这对于用户来说是一个非常糟糕的情况,比如说有电话打进来,这会让设备非常嘈杂。 我对此感到困惑。我还读到,使用audioManager设置音量不是一个好的做法,它有副作用 下面是我试图控制音量的一些东西: public void resume() { 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));
        }

    }

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

-p>首先要做一件事,获取系统的当前音量:

AudioManager am = (AudioManager) getSystemService(AUDIO_SERVICE);
int volume_level= am.getStreamVolume(AudioManager.STREAM_MUSIC);
音频播放完成后或当您释放media player时,设置音频播放前的默认音量

am.setStreamVolume(AudioManager.STREAM_MUSIC,volume_level,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);
检查