Android 音量控制 - ythy/blog GitHub Wiki
不需要系统权限, 代码如下:
final AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
int maxVolume = audioManager.getStreamMaxVolume(type);
int currentVolume = audioManager.getStreamVolume(type);
seekBar.setMax(maxVolume);
seekBar.setProgress(currentVolume);
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar arg0) {
}
@Override
public void onStartTrackingTouch(SeekBar arg0) {
}
@Override
public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
audioManager.setStreamVolume(type, arg1, 0);
}
});
// 调用: seekBar:SeekBar, type: AudioManager.STREAM_MUSIC;
注意事项: audioManager.setStreamVolume() type按音量类别设置.
- 媒体音量:
AudioManager.STREAM_MUSIC - 铃声音量:
AudioManager.STREAM_RING
所有配置:
this.setVolumeControlStream(AudioManager.STREAM_MUSIC);
this.setVolumeControlStream(AudioManager.STREAM_RING);
this.setVolumeControlStream(AudioManager.STREAM_ALARM);
this.setVolumeControlStream(AudioManager.STREAM_NOTIFICATION);
this.setVolumeControlStream(AudioManager.STREAM_SYSTEM);
this.setVolumeControlStream(AudioManager.STREAM_VOICECALL);