视频播放器的屏幕手势适配
做视频播放器的时候,经常需要对于屏幕的不同手势操作进行适配。
一般来说,是左右滑动可以调节进度,左侧上下滑动调节亮度,右侧上下滑动调节声音。一般调节进度的时候还有个需求就是一边滑动一边可以预览画面,所以正在滑动的时候,其实视频播放器是暂停状态,停止滑动的时候,播放器继续播放。另外,点击而不滑动会显示/隐藏控制栏。
按照这个需求,实际上应该是把View.OnTouchListener传过来的坐标和事件,转换成以下的回调:
- 左右滑动
- 左右滑动结束
- 左侧上下滑动
- 右侧上下滑动
- 点击
其实除了这些,还有些潜在的需求,比如一旦确定一个滑动事件,在手离开屏幕前是不能改变的。比如,一旦做出了左右滑动的判断开始调节进度,在手离开屏幕结束这次事件前,是不能再判断为上下滑动的。
预定了这些目标后,就可以做一个适配,获取承载SurfaceView或TextureView的父布局。设置其OnTouchListener为这里的VideoPlayerTouchAdapter对象,然后匿名实现其回调接口VideoPlayerTouchListener,就可以适配我们定的新回调了。
代码参考
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
/**
* Created by Jax on 2016/10/24.
*/
public class VideoPlayerTouchAdapter implements View.OnTouchListener