提出问题

    最近遇到问题,在使用seekTo方法为视频定位时,进度条拖动到某位置,松开后,实际定位偶发不准确。

探究过程

  1. 通过网上搜索,了解到:seekTo的逻辑是当指定位置不是关键帧时,会定位到距离最近的关键帧。
  2. 继续网上搜索,了解到:seekTo方法的第二个参数存在三个可选值,作用分别为seek到最近的、上一个、下一个关键帧。
  3. 于是,我使用ffmpeg提取了我的视频素材的关键帧,发现一分多钟的视频只有十个关键帧。这时候产生了一个解决方案,就是将视频文件的每一个位置都设置上关键帧,网上看到也的确有人在这样做,但这种方式会修改原来的视频文件,不太好。
  4. 那么现在问题就是:能否找到一种方式,使得seekTo不是定位到关键帧。
  5. 阅读MediaPlayer的源码,发现一个seekTo的可选参数“SEEK_CLOSEST”。官方对该参数的描述是:“This mode is used with seekTo(long, int) to move media position to a frame (not necessarily a key frame) associated with a data source that is located closest to or at the given time.“ 翻译过来就是:“此模式与seekTo(long,int)一起使用,以将媒体位置移动到与最接近给定时间或在给定时间定位的数据源关联的帧(不一定是关键帧)。“
  6. 将seekTo的第二个参数改为SEEK_CLOSEST,问题解决。

参考:

Android MediaPlayer seekTo不准确问题

关于Android VideoView seekTo不准确的解决方案

MediaExtractor的seekTo方法精确定位到指定帧

使用ffmeg提取视频关键帧

Android 解决MediaPlayer seekTo定位不准确(无需修改关键帧)相关推荐

  1. 小tips:解决burp光标定位不准确

    问题: burp抓包过程中,定位不准确,详细看图内光标定位位置 解决方法: 1.根据百度首条解决方式:未果 2.通过调节字体和字体大小:完美解决 转载请注明:Adminxe's Blog » 小tip ...

  2. Android Studio使用百度定位不准确的问题(使用模拟器)

    关于Android Studio使用百度定位位置不准确的原因之一(使用模拟器) 项目场景: Android Stdio使用百度定位后 问题描述: 使用百度定位后,Android Studio后台无报错 ...

  3. 【Android 逆向】Android 逆向基本概念 ( 定位内存中的修改点 | 基址寻址法 | 搜索定位法 )

    文章目录 一.定位内存中的修改点 1.基址寻址法 2.搜索定位法 一.定位内存中的修改点 使用 " 基址寻址法 " 或 " 搜索定位法 " 搜索 指定文件中的代 ...

  4. 关于百度地图js api的getCurrentPosition定位不准确的解决方法

    关于百度地图js api的getCurrentPosition定位不准确的解决方法 参考文章: (1)关于百度地图js api的getCurrentPosition定位不准确的解决方法 (2)http ...

  5. android高德地图定位是准确的吗,高德地图定位不准确?原因在这里!

    高德地图的集成还是比较简单的,而且用法都有Demo,下面我就说一说定位不准确的原因吧 1.获取SHA1值出错,这个很重要,如果SHA1值不对的话,高德SDK是不会告诉你的,而且最可恶的是还能运行,位置 ...

  6. 路径偏移定位不准确?华为定位SuperGNSS技术帮您解决这一难题!

    在这个移动互联网时代,不管是位置分享.搜索周边还是路线规划都需要对用户进行定位,获取用户所在的位置,而这些操作都离不开定位服务.然而当大家在分享位置时,往往会出现因为建筑遮挡导致路径偏移.位置定位不准 ...

  7. android seek to,android – MediaPlayer seekTo从一开始就不一致地播放歌曲

    我正在使用 Android的MediaPlayer类开始播放一些偏移的歌曲.在代码中指定此偏移后,我播放期望从该偏移位置听到它的歌曲,但我听到它从头开始播放.请注意以下代码: MediaPlayer ...

  8. MediaPlayer SeekTo 不准确的解决方案

    MediaPlayer SeekTo 不准确的解决方案 参考文章: (1)MediaPlayer SeekTo 不准确的解决方案 (2)https://www.cnblogs.com/jms-blog ...

  9. android mp4宽高,Android:MediaPlayer视频宽高比问题

    我遇到了一个我无法解决的问题.我正在使用MediaPlayer类来播放视频;但是,我总是失去原有的宽高比.这里提到了媒体播放器代码和xml代码.我尝试了很多东西,但仍然无法解决问题.我需要保持原始的宽 ...

最新文章

  1. Django1.11 扩展User属性增加头像上传功能
  2. 贝塞尔曲线(B′ezier)基础
  3. python多维数据分析_Python 数据分析:numpy 多维数组 ndarray
  4. JavaScript- 正则表达式匹配汉字
  5. php 修改上传文件大小 (max_execution_time post_max_size)
  6. 工作178:moment使用
  7. linux通过不同端口访问,linux下两个tomcat通过不同端口访问不同项目
  8. 月费10元起!中国移动推年轻人的第一张5G元素电话卡
  9. Python绘制带有中文标签和图例的图
  10. java实验指导答案华软_Java核心编程技术实验指导教程
  11. Android.mk中call all-subdir-makefiles和call all-makefiles-under,$(LOCAL_PATH)的区别
  12. poi 拆分带图片的word_POI导出简单的带有图片的Word文档
  13. Atitit 初级 中级 高级 软件工程师的区别 非功能性需求 目录 1. 初级 业务功能 1 1.1. 中级 独立完成业务功能 已经非常见api功能 更加广阔 1 2. 高级 非功能性需求
  14. java根据经纬度获取地址
  15. react使用@tweenjs/tween.js实现数字动态增长
  16. 【HBase 进阶】-- Region 过多的影响 合理分区数量
  17. Python入门笔记,代码练习——常用内置数据类型【持续更新】
  18. Novell推出可替代微软的桌面应用软件包(转)
  19. ElasticSearch 使用教程之_score(评分)介绍
  20. CSS入门教程——字体

热门文章

  1. 31款轻量高效的开源 JavaScript 插件和库
  2. 15款业界公认的最佳视频处理软件
  3. Spring Boot 化繁为简
  4. JS工具函数大全,值得一看
  5. NSTimeInterval
  6. 一小时教你学会项目管理的精髓
  7. 前端网页三剑客------HTML基础
  8. 谷歌地图卫星影像应用到AutoCAD
  9. 面试TCP/IP被虐了?
  10. 一个成功的管理者应具备哪些能力