android 8 音量小,Android8.1修改默认音量大小的方法

目前网上有一些关于修改系统默认音量大小的方法,比如修改AudioSystem.java的DEFAULT_STREAM_VOLUME:

public static int[] DEFAULT_STREAM_VOLUME = new int[] {

4,  // STREAM_VOICE_CALL

7,  // STREAM_SYSTEM

5,  // STREAM_RING

5, // STREAM_MUSIC

6,  // STREAM_ALARM

5,  // STREAM_NOTIFICATION

7,  // STREAM_BLUETOOTH_SCO

7,  // STREAM_SYSTEM_ENFORCED

5, // STREAM_DTMF

5, // STREAM_TTS

5, // STREAM_ACCESSIBILITY

};

但是我试过这种方式,发现默认音量大小并没有改变。分析代码发现AudioService.java文件的AudioService构造函数中,对默认音量值进行了强行赋值。

int defaultMusicVolume = SystemProperties.getInt("ro.config.media_vol_default", -1);

if (defaultMusicVolume != -1 &&

defaultMusicVolume <= MAX_STREAM_VOLUME[AudioSystem.STREAM_MUSIC]) {

AudioSystem.DEFAULT_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] = defaultMusicVolume;

} else {

if (isPlatformTelevision()) {

AudioSystem.DEFAULT_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] =

MAX_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] / 4;

} else {

AudioSystem.DEFAULT_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] =

MAX_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] / 3;

}

}

如果定义了ro.config.media_vol_default的属性值,则默认音量值会被设置为该属性值的大小。如果没有定义该属性值,则默认音量值会被强制设置为最大音量值的1/4(手机模式)或者1/3(其他模式)。

因此,想修改默认的media音量大小,有两种方法可以修改。一种方法是定义ro.config.media_vol_default的系统属性值,这种方法不用修改源文件,只需在配置文件中增加一句即可;另一种方法是,将AudioSystem.DEFAULT_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] 强制地赋值为你想设置的音量大小。

你可能感兴趣的:(android,8,音量小)