android 音量调节 seekbar,Android 音量调节seekbar制作

这篇博客介绍了如何在Android应用中实现媒体播放音量的获取与调节。通过AudioManager类获取系统音量,使用SeekBar进行音量增减,并确保用户通过音量键操作时SeekBarseekBar保持同步更新。同时,展示了使用Handler和线程来实时更新UI,以保持音量变化的即时显示。
摘要由CSDN通过智能技术生成

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

2.通过seekbar可以增减音量

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

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

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

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

设置音量的代码:

java代码:

private void setVolum(){

maxVolume = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);

volSeekBar.setMax(maxVolume);

currentVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);

volSeekBar.setProgress(currentVolume);

mVolume.setText(currentVolume*100/maxVolume + " ");

}

实现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代码:

Handler myHandler = new Handler(){

public void handleMessage(Message msg) {

switch (msg.what) {

case PROGRESS_CHANGED:

setVolum();

/*sendEmptyMessageDelayed(PROGRESS_CHANGED, 200);*/

break;

}

}

};

class myVolThread implements Runnable {

public void run() {

while (!Thread.currentThread().isInterrupted()) {

Message message = new Message();

message.what =PROGRESS_CHANGED;

MainActivity.this.myHandler.sendMessage(message);

try {

Thread.sleep(100);

} catch (InterruptedException e) {

Thread.currentThread().interrupt();

}

}

}

}

243c40e69c4ee704910931ba3c0b9272.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值