Android 音量 seekbar 制作
很多音乐播放器界面上都有一个音量 seekbar,那么在 android 里面是如何实现的呢?
首先分析下要解决的问题:1.获取媒体播放的音量。
2.通过 seekbar 可以增减音量
3.用户按下音量键增减音量,seekbar 保持同步
对于第一个问题:Android 系统提供 AudioManager 类来获得系统 audio 服务。
对于第二个问题:实现 seekBarChangeLIstener 里面 onProgressChanged 方法。
对于第三个问题:用线程来同步更新 UI。
设置音量的代码:
1private void setVolum()
2 {
3
4 maxVolume = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
5 volSeekBar.setMax(maxVolume);
6 currentVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
7 volSeekBar.setProgress(currentVolume);
8 mVolume.setText(currentVolume*100/maxVolume + " ");
9 }
实现 seekbar 控制音量代码:
OnSeekBarChangeListener seekBarChangeListener = new OnSeekBarChangeListener()
{
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, progress, 0);
}
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
};
线程更新 UI 代码: