Author:li_xingwang

通过打印分析得到如下结论:
1.断ACC之后保存有进度到

    private void save() {if(isPlaying()) mCurrentPos =  mVideoView.getCurrentPosition();try {BufferedWriter bw = null;try {bw = new BufferedWriter(new  FileWriter("/data/tw/video"));bw.write(mCurrentAPath);bw.write('\n');bw.write(Integer.toString(mCurrentIndex));bw.write('\n');bw.write(Integer.toString(mCurrentPos));bw.write('\n');bw.write(Integer.toString(mCurrentType));bw.write('\n');bw.flush();} catch (Exception e) {new  File("/data/tw/video").delete();} finally {if(bw != null) {bw.close();bw = null;}}FileUtils.setPermissions("/data/tw/video",  0666, -1, -1);} catch (Exception e) {}}

2.ACC起来后,读取保存的进度并且播放

private void resume() {try {BufferedReader br = null;try {br = new BufferedReader(new  FileReader("/data/tw/video"));mCurrentAPath =  br.readLine();mCurrentIndex =  Integer.valueOf(br.readLine());mCurrentPos =  Integer.valueOf(br.readLine());mCurrentType =  Integer.valueOf(br.readLine());} catch (Exception e) {} finally {if(br != null) {br.close();br = null;}}} catch (Exception e) {}if(mCurrentAPath != null) {mCurrentPath =  mCurrentAPath.substring(0,  mCurrentAPath.lastIndexOf("/"));}}

3.进度条前面1~2秒是正常的,是根据保存的进度继续往前走,可是突然进度就倒退了,这必然是Handler里面处理进度条的地方导致的

4.getCurrentPosition这个方法里面获取的进度是通过mMediaPlayer获取的,所以应该是系统导致的问题,暂时还没想到好的解决办法

public int getCurrentPosition() {if (isInPlaybackState()) {return  mMediaPlayer.getCurrentPosition();}return mSeekWhenPrepared;}

Author:xiangyong

补充一下,我们发现ACC起来后,video会自动播放的,但经过打印可发现,Video在播放过程中handler会收到热拔插的信息,
而热拔插中有这么个方法

if((mCurrentPath != null) && mCurrentPath.startsWith(volume)) {if(msg.arg2 == 0) { //如果是拔出设备mPlaylistRecord.clearRecord();stop(); } else {loadFile(mPlaylistRecord, mCurrentPath);if(mTW.getService() == TWVideo.ACTIVITY_RUSEME) { //之前有退回的问题current(mCurrentPos, false);}}}

符合条件会再次走current方法,而mCurrentPos又不是实时储存的,所以此处会导致进度跳的问题,
所以
1.mCurrentPos实时存储

 case SHOW_PROGRESS:  //获取到播放 更新播放时间进度等状态if(isPlaying()) {int duration = mVideoView.getDuration();int position = mVideoView.getCurrentPosition();mCurrentPos = mVideoView.getCurrentPosition(); //实时储存...

2.此处加一个判断条件

if((mTW.getService() == TWVideo.ACTIVITY_RUSEME)&&(!isPlaying())) { //之前有退回的问题current(mCurrentPos, false);
}

基本就解决了ACC起来跳秒问题

但但但是,有客户测试到ACC起来后播了十几秒后又回退起始位置播放,这太恐怖了,完全不在我的认知范围,除了底层Playmedia模块出问题外,想不到其他出问题的地方,这个问题我会持续会跟进中。

转载于:https://www.cnblogs.com/xiangevan/p/10751637.html

笔记86 | 视频在ACC起来后会跳进度问题分析相关推荐

  1. OpenCV学习笔记:视频处理

    环境:CentOS7 g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16) $ pkg-config --modversion opencv 2.4.13 测试所用视 ...

  2. 抖音搬运视频热门技巧 剪辑后会修改视频md5

              抖音搬运视频热门技巧 剪辑后会修改视频md5          短视频行业与外部行业的打通尚存在探索空间. 尽管短视频是一种全新的内容展示形式,但是这种内容展示形式仅仅只是停留在短 ...

  3. 简智音科技:抖音短视频账号限流后的解决方法

    以抖音如今的地位与所拥有的资源,无论对个人还是企业.社会来讲巨大的流量都是相当有价值的.加入短视频创作的用户也随着市场延伸逐渐变多,许多用户源于眼红凭借短视频创作一夜暴富的人,因此,也参与其中.但不知 ...

  4. unity 使用ump插件播放视频 ,打包发布后黑屏或者在别人电脑上运行黑屏,解决方案

    unity 使用ump插件播放视频 ,打包发布后黑屏或者在别人电脑上运行黑屏,解决方案. ump插件下载 最近在项目里面 需要接入海康监控 并在unity中显示,我选择使用ump 插件播放视频, 刚开 ...

  5. 视频处理(转码加水印修剪合并)后声音画面不一致现象分析

    在我们的工作或者是生活中,或多或少会需要用到处理一下视频,比如对视频进行格式转换,对视频进行截取一小部分,或者多个小视频合并成一个长的视频. 在对视频进行处理的过程中,我们往往会发现,处理后的视频不只 ...

  6. 抖音怎么上热门技巧 视频修改md5值后很卡卡

              抖音怎么上热门技巧 视频修改md5值后很卡卡          早在2017年今日头条就曾公布一个数据,今日头条用户日均内容消费48亿,其中短视频内容日均播放量30亿,占据超过7成 ...

  7. [经验教程]腾讯视频VIP会员开通后如何申请退款取消腾讯视频会员VIP退款教程

    腾讯视频VIP会员开通后如何申请退款? 1.打开腾讯视频VIP会员开通支付订单,如确实不需要用腾讯视频VIP会员在再申请退款,请不要恶意申请. 2.进入后,选择遇到的问题:不满意商家的会员服务或充错会 ...

  8. 永兴的笔记-OpenCV-14视频基本操作 1

    一.什么是视频? 1.视频的基本概念: 视频(Video)泛指将一系列静态影像以电信号的方式加以捕捉.纪录.处理.储存.传送与重现的各种技术.连续的图像变化每秒超过24帧(frame)画面以上时,根据 ...

  9. 【报错笔记】在做图片上传时上传图片后可以跳转到上传成功界面,也没有报错,数据库中也传入了值,可是eclipse中webapp下怎样都无法生存目录。

    在做图片上传时上传图片后可以跳转到上传成功界面,也没有报错,数据库中也传入了值,可是eclipse中webapp下怎样都无法生存目录. 我使用UUID生成8级目录,在webapp下创建目录,将图片传进 ...

最新文章

  1. Win10 + VS2017 15.5.6 环境下解决 Python 3.6 环境无法刷新DB的问题
  2. 用于显示本地通知的跨平台插件flutter_local_notifications
  3. [转]第(前)k大数问题
  4. Visual C#实现HTTP代理服务程序
  5. 嘀嗒还是滴答_2021年顺风车车主口碑榜!滴滴、滴答、一喂顺风车成TOP3
  6. Turbo C 2.0、Borland C++库函数及用例
  7. 微信小程序获取当前地址以及选择地址详解 地点标记
  8. 我,23 岁 深漂女 Python自动化测试的心路历程|2021 总结
  9. 20180925-6 四则运算试题生成
  10. php--------使用js生成二维码
  11. 工业AI落地场景案例实战,飞桨EasyDL让工业更智能
  12. 我国计算机操作系统开发历史及现状(软件学报格式的本文WORD文档在作者主页)
  13. Unity中录制VR全景视频(可录制UGUI)
  14. (修订)来自山区双非本科少年的秋招冒险记
  15. 关于51/STC单片机中断优先级的调整
  16. 【游戏开发实战】用Go语言写一个服务器,实现与Unity客户端通信(Golang | Unity | Socket | 通信 | 教程 | 附工程源码)
  17. 模拟登陆手机版新浪微博
  18. BTF社区不忘初心共筑未来通证新经济
  19. 区块链成热点赛道,云技术如何赋能结合?
  20. c语言 feof 死循环,请教:为什么我用while(!feof(fp))时会出现无限循环????

热门文章

  1. vs code c语言json文件配置,解析VScode在Windows环境下c_cpp_properties.json文件配置问题(推荐)...
  2. 计算机受限制用户,由于该计算机受到限制,本次操作已被取消的解决办法
  3. 新建计算机管理员用户,电脑我设置个新的用户 怎么切换不到默认的管理员用户登陆了...
  4. 草珊瑚理解IFC(inline formatting context)
  5. 编译AVX代码,升级Redhat 5.5 GCC至4.7.1
  6. MS SQL Server带有时间的记录怎样查询
  7. Spring Board View
  8. 让你在职场游刃有余的10句话
  9. LeetCode 688. “马”在棋盘上的概率
  10. CentOS 7上搭建Spark 3.0.1 + Hadoop 3.2.1分布式集群