【Android】Android实现视频播放的时候滑动屏幕调节亮度和音量
2016-12-09 13:39
2807 查看
当我们用手机看视频的时候有时候需要调节音量和亮度,但是要把播放器方法哦后台再去调节就显得很不方便,因此在当前播放界面上滑动屏幕到达调节亮度和音量的效果是必要也是必须的。
在播放的界面的onTouchEvent方法中这样写:
其中updateVoice方法如下:
但是这样的话并不能再屏幕上显示实时的调节效果,如果要显示实时的调节的效果(显示当前的亮度和音量)只要在对应的xml代码中增加一个textView即可,调节音量或者亮度的时候就将对应的值显示出来。
在播放的界面的onTouchEvent方法中这样写:
@Override public boolean onTouchEvent(MotionEvent event) { //3.把事件传递给手势识别器 detector.onTouchEvent(event); switch (event.getAction()) { case MotionEvent.ACTION_DOWN://手指按下 //1.按下记录值 startY = event.getY(); startX = event.getX(); mVol = am.getStreamVolume(AudioManager.STREAM_MUSIC); touchRang = Math.min(screenHeight, screenWidth);//screenHeight handler.removeMessages(HIDE_MEDIACONTROLLER); break; case MotionEvent.ACTION_MOVE://手指移动 //2.移动的记录相关值 float endY = event.getY(); float endX = event.getX(); float distanceY = startY - endY; if (endX < screenWidth / 2) { //左边屏幕-调节亮度 final double FLING_MIN_DISTANCE = 0.5; final double FLING_MIN_VELOCITY = 0.5; if (distanceY > FLING_MIN_DISTANCE && Math.abs(distanceY) > FLING_MIN_VELOCITY) { setBrightness(10); } if (distanceY < FLING_MIN_DISTANCE && Math.abs(distanceY) > FLING_MIN_VELOCITY) { setBrightness(-10); } } else { //右边屏幕-调节声音 //改变声音 = (滑动屏幕的距离: 总距离)*音量最大值 float delta = (distanceY / touchRang) * maxVoice; //最终声音 = 原来的 + 改变声音; int voice = (int) Math.min(Math.max(mVol + delta, 0), maxVoice); if (delta != 0) { isMute = false; updateVoice(voice, isMute); } } break; case MotionEvent.ACTION_UP://手指离开 handler.sendEmptyMessageDelayed(HIDE_MEDIACONTROLLER, 5000); break; } return super.onTouchEvent(event); }也就是说,当我们播放视频的时候在屏幕左半边上下滑动可以调节亮度,在屏幕右半边上下滑动可以调节音量。实现的方法就是通过比例的运算来实现的,滑动的距离/总距离 = 改变的音量/系统最大音量,再令当前音量=原来音量+改变的音量就实现了音量的调节,亮度的调节也是如此。
其中updateVoice方法如下:
/** * 设置音量的大小 * * @param progress */ private void updateVoice(int progress, boolean isMute) { if (isMute) { am.setStreamVolume(AudioManager.STREAM_MUSIC, 0, 0); seekbarVoice.setProgress(0); } else { am.setStreamVolume(AudioManager.STREAM_MUSIC, progress, 0); seekbarVoice.setProgress(progress); currentVoice = progress; } }setBrightness方法如下:
/* * * 设置屏幕亮度 lp = 0 全暗 ,lp= -1,根据系统设置, lp = 1; 最亮 */ public void setBrightness(float brightness) { WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.screenBrightness = lp.screenBrightness + brightness / 255.0f; if (lp.screenBrightness > 1) { lp.screenBrightness = 1; } else if (lp.screenBrightness < 0.1) { lp.screenBrightness = (float) 0.1; } getWindow().setAttributes(lp); }
但是这样的话并不能再屏幕上显示实时的调节效果,如果要显示实时的调节的效果(显示当前的亮度和音量)只要在对应的xml代码中增加一个textView即可,调节音量或者亮度的时候就将对应的值显示出来。
相关文章推荐
- 使用VideoView播放视频,锁屏暂停播放之后,过一会自动播放,而且可以通过滑动屏幕调节音量。。。
- Android视频播放器屏幕左侧边随手指上下滑动亮度调节变暗变亮原理实现
- 使用SurfaceView播放视频,调节进度,滑动屏幕调节音量并显示音量。
- 使用SurfaceView播放视频,调节进度,滑动屏幕调节音量并显示音量。
- Android 播放电影时滑动屏幕调整屏幕亮度
- Android之视频播放以及亮度音量变换
- Android视频播放器屏幕左侧边随手指上下滑动亮度调节变暗变亮原理实现
- Android视频播放器屏幕左侧边随手指上下滑动亮度调节功能的原理实现
- swift4.0实现视频播放、屏幕旋转、倍速播放、手势调节及锁屏面板等功能实例
- Android视频播放器屏幕左侧边随手指上下滑动亮度调节变暗变亮原理实现
- 滑动调节音量与屏幕亮度
- Android调节屏幕亮度、系统音量、wifi、bluetooth、振动等常用设置的整合demo
- android 的 c层 实现 音乐播放与音量调节
- 【Android】系统音量及屏幕亮度调节
- Android 播放电影时滑动屏幕调整屏幕亮度
- 手机影音第九天,控制视频全屏播放与退出全屏播放,音量调节按钮来控制视频音量与静音的实现
- Android中 视频屏幕左半部分上下滑动改变亮度右半部分上下滑动改变声音
- 【Android】Android开发实现进度条效果,SeekBar的简单使用。音量,音乐播放进度,视频播放进度等
- Android仿微博实现列表滑动播放/暂停视频
- Android视频播放器屏幕左侧边随手指上下滑动亮度调节变暗变亮原理实现(2):后续改进