我有音频,只有在满足某些条件时才会播放。我只想在播放时增加音频音量,一旦播放完毕,音量应设置为默认系统音量。目前,我正在将音量设置为最大音量,在播放音频时可以正常工作,但即使在音频结束后,系统音量也会保持在该级别。这对用户来说是一个非常糟糕的情况,比如说,当有电话打来时,它会使设备变得非常嘈杂。我对实现这一点感到困惑。我还读到过使用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));
        }
    }那么,如何才能在播放音频时只增加音量呢?
发布于 2018-04-23 15:21:50
-Do首先要做的一件事是获取系统的当前容量:
AudioManager am = (AudioManager) getSystemService(AUDIO_SERVICE);
int volume_level= am.getStreamVolume(AudioManager.STREAM_MUSIC);在您的音频完成后,或当您在此时释放媒体播放器时,请设置在音频播放之前获得的默认音量。
am.setStreamVolume(AudioManager.STREAM_MUSIC,volume_level,0);发布于 2018-04-23 21:06:44
通过从上述答案中获得一些帮助,我已经实现了我在问题中提出的要求。
首先,我正在获取原始系统音量,一旦音频开始,我将系统音量设置为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);https://stackoverflow.com/questions/49974131
复制相似问题