android exoplayer实现左右滑动屏幕快进快退
来源:互联网 发布:手机excel软件 编辑:程序博客网 时间:2024/06/05 16:22
我的代码写的比较乱,不好意思拿上来,但是我个人亲测过,还是可以实现快进快退的功能的。截取一部分供大家参考
simpleExoPlayerView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent event) { int action = event.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: x = (int) event.getRawX(); y = (int) event.getRawY(); break; case MotionEvent.ACTION_UP: int upX = (int) event.getRawX(); int upY = (int) event.getRawY(); int disX = upX - x; int dixY = upY - y; if (Math.abs(disX) > Math.abs(dixY) && Math.abs(disX) > 10) { long fastLength = unitLength * disX; long currentLength = (simpleExoPlayer.getCurrentPosition() + fastLength); if (currentLength >= 0 && currentLength <= totalTime) { simpleExoPlayer.seekTo(currentLength); } } break; } return true; } });
private long unitLength; private long totalTime; @Override public void onPlayerStateChanged(boolean playWhenReady, int playbackState) { switch (playbackState) { case PlaybackState.STATE_PLAYING: // 获取总时长,然后计算 if (totalTime == 0) { totalTime = (simpleExoPlayer.getDuration()); int width = MobileScreenUtils.getScreenWidth(mContext); if (totalTime < width) { unitLength = (totalTime % width); } else { unitLength = (totalTime / width); } LogUtils.e("总时长是:" + totalTime + "--" + width); } initPlayVideo(); break; case PlaybackState.STATE_BUFFERING: System.out.println("播放状态: 缓存完成 playing"); break; case PlaybackState.STATE_CONNECTING: System.out.println("播放状态: 连接 CONNECTING"); break; case PlaybackState.STATE_ERROR://错误 System.out.println("播放状态: 错误 STATE_ERROR"); break; case PlaybackState.STATE_FAST_FORWARDING: System.out.println("播放状态: 快速传递"); pausePlay();//暂停播放 break; case PlaybackState.STATE_NONE: System.out.println("播放状态: 无 STATE_NONE"); break; case PlaybackState.STATE_PAUSED: System.out.println("播放状态: 暂停 PAUSED"); break; case PlaybackState.STATE_REWINDING: System.out.println("播放状态: 倒回 REWINDING"); break; case PlaybackState.STATE_SKIPPING_TO_NEXT: System.out.println("播放状态: 跳到下一个"); break; case PlaybackState.STATE_SKIPPING_TO_PREVIOUS: System.out.println("播放状态: 跳到上一个"); break; case PlaybackState.STATE_SKIPPING_TO_QUEUE_ITEM: System.out.println("播放状态: 跳到指定的Item"); break; case PlaybackState.STATE_STOPPED: System.out.println("播放状态: 停止的 STATE_STOPPED"); break; } }
这个方法是实现了Player.EventListener接口实现的。unitLength是根据屏幕宽度和视频总时长来计算出来的。
阅读全文
0 0
- android exoplayer实现左右滑动屏幕快进快退
- Directshow中实现快进快退
- 视频框架 Vitamio 使用教程+部分心得 (五) 左右滑动快进快退 + VideoView部分中文API
- ffmpeg 快进快退
- live555的trick play的TS实现快进快退
- live555的trick play的TS实现快进快退
- 如何实现视频的快进快退功能(整理)
- 如何实现视频的快进快退功能(整理)
- 指导7:快进快退
- 使用UISlider自定义视频播放器滑动条---视频快进快退功能
- Android屏幕切换左右滑动
- Android屏幕切换左右滑动
- ffmpeg文档7:快进快退
- 【转】ffmpeg tutorial 7:快进快退
- ffmpeg tutorial 7:快进快退
- ffmpeg文档7:快进快退
- [小技巧] youtube 快进快退快捷键
- ffmpeg播放器快进快退(七)
- linux find 通配符(新人向)
- 字符串练习14_大小写字母互换
- Mybatis快速入门
- 记录一个简单SpringBoot项目的创建过程
- 创建型模式之单例模式
- android exoplayer实现左右滑动屏幕快进快退
- 一个异常:java.lang.NoClassDefFoundError
- [笔记分享] [Display] MIPI 协议之PHY
- AR Index
- Make your own Neural NetWork之代码详解上
- ubuntu下安装invidia显卡驱动
- PHP(冒泡,快速,选择,插入)排序
- 滚动条消息(WM_VSCROLL和WM_HSCROLL)
- 今天开始写博客啦~