阅读:7646回复:3
修改默认音量大小的方法
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] 强制地赋值为你想设置的音量大小。 |
|
沙发#
发布于:2019-08-01 15:03
不错,感谢分享
|
|
|
板凳#
发布于:2019-08-01 15:12
灰常莱斯
|
|
|