标签:over set return override 视频播放 ptr 变声 tracking seekbar

1_得到当前音量和最大音量
//关于设置音量 private int currentVolume;//当前音量值 private int currentMaxVolume;//当前最大音量 private AudioManager am; am = (AudioManager) getSystemService(AUDIO_SERVICE); currentVolume = am.getStreamVolume(AudioManager.STREAM_MUSIC); currentMaxVolume = am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
2_拖动的时候改变音量
voice_seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
sendDelayedHideControlPlayerMessage();
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
removeDelayedHideControlPlayerMessage();
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
if(fromUser){
updateVolume(progress);
}
}
});
/**
* 修改音量范围0~15
* @param progress2
*/
protected void updateVolume(int volume) {
am.setStreamVolume(AudioManager.STREAM_MUSIC, volume, 0);
voice_seekBar.setProgress(volume);
currentVolume = volume;
}
3_静音和非静音
case R.id.btn_voice:
isMute = !isMute;
updateVolume(currentVolume);
break;
/**
* 修改音量范围0~15
* @param progress2
*/
protected void updateVolume(int volume) {
if(isMute){
am.setStreamVolume(AudioManager.STREAM_MUSIC, 0, 0);
voice_seekBar.setProgress(0);
}else{
am.setStreamVolume(AudioManager.STREAM_MUSIC, volume, 0);
voice_seekBar.setProgress(volume);
}
currentVolume = volume;
}
private float startY;
/**
* 滑动的区域
*/
private float touchRang;
/**
* 当前的音量
*/
private int mVol;
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()){
case MotionEvent.ACTION_DOWN://手指按下屏幕
//1.记录相关的值
startY = event.getY();
touchRang =Math.min(screenWidth, screenHeight);//screenHeight
mVol = am.getStreamVolume(AudioManager.STREAM_MUSIC);
handler.removeMessages(HIDE_MEDIACONTROL);
break;
case MotionEvent.ACTION_MOVE://手指在屏幕上移动
//2.来到结束的坐标
float endY = event.getY();
//3.计算偏移量
float distanceY = startY - endY;
//要改变的声音 = (滑动的距离 / 总距离)*最大音量
float delta = (distanceY/touchRang)*maxVolume;
//最终声音 = 原来的声音 + 要改变的声音
float volum e = Math.min(Math.max(mVol+delta,0),maxVolume);
if(delta != 0){
updatavolumeProgress((int) volume);
}
// startY = event.getY();
break;
case MotionEvent.ACTION_UP://手指离开屏幕
handler.sendEmptyMessageDelayed(HIDE_MEDIACONTROL,5000);
break;
}
return super.onTouchEvent(event);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_VOLUME_DOWN){
currentVolume--;
updatavolumeProgress(currentVolume);
handler.removeMessages(HIDE_MEDIACONTROL);
handler.sendEmptyMessageDelayed(HIDE_MEDIACONTROL, 5000);
return true;
}else if(keyCode ==KeyEvent.KEYCODE_VOLUME_UP){
currentVolume++;
updatavolumeProgress(currentVolume);
handler.removeMessages(HIDE_MEDIACONTROL);
handler.sendEmptyMessageDelayed(HIDE_MEDIACONTROL, 5000);
return true;
}
return super.onKeyDown(keyCode, event);
}
标签:over set return override 视频播放 ptr 变声 tracking seekbar
原文地址:http://www.cnblogs.com/ganchuanpu/p/6064191.html