您的位置:首页 > 移动开发 > Android开发

Android中自定义SeekBar来控制音量,并与系统音量键的操作保持同步

2012-02-08 15:31 781 查看
下文来自:

http://www.itivy.com/android/archive/2011/7/10/android-set-voice-seekbar.html

--------------------------------------------

很多音乐播放器界面上都有一个音量seekbar,那么在android里面是如何实现的呢?
首先分析下要解决的问题:

1.获取媒体播放的音量。

2.通过seekbar可以增减音量

3.用户按下音量键增减音量,seekbar保持同步

对于第一个问题:Android系统提供AudioManager类来获得系统audio服务。

对于第二个问题:实现seekBarChangeLIstener里面onProgressChanged方法。

对于第三个问题:用线程来同步更新UI。

设置音量的代码:

实现seekbar控制音量代码:

线程更新UI代码:

最后贴上MainActivity代码:

-----------------------------------------

注:原来我为了保持与 系统按键操作的统一,在Acitity中通过

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

switch (keyCode){

case KeyEvent.KEYCODE_VOLUME_DOWN:

ddApplication.reSaveMusicVolume();

break;

case KeyEvent.KEYCODE_VOLUME_UP:

ddApplication.reSaveMusicVolume();

break;

}

musicControl.setProgress(ddApplication.getMusicVolume()); // 这一句不起作用啊

return super.onKeyDown(keyCode, event);

}

结果发现并不能实现同步的效果,遂找得上篇来作参考!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: