android seekto实现_Android IjkPlayer seekto后会有时会向后跳跃?不准确怎么解决
我已经解决了,包括播放网络视频,而且运行的很好!!我发现一个规律,只要多次seekto 之后,肯定能准确跳转。所以我写了一个重复seekto 的机制:
首先初始化加入配置项:
//SeekTo设置优化
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "http-detect-range-support", 0L);
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "fflags", "fastseek"); //快速seekto
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "enable-accurate-seek", 1);
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "opensles", 0);
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "overlay-format", IjkMediaPlayer.SDL_FCC_RV32);
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "framedrop", 1);
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "start-on-prepared", 0);
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "reconnect", 1);
//重复seekto 的过渡值
private int curSeekPos = -1;
private int curSeekCount = 0;
mPlayerSeekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if (!fromUser) {
return;
}
long duration = getDuration();
long newposition = (duration * progress) / 1000L;
seekTo((int) newposition);
if (mPlayerTime != null)
mPlayerTime.setText(stringForTime((int) newposition));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
curSeekPos = 0;
curSeekCount = 0;
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
long duration = getDuration();
long newposition = (duration * seekBar.getProgress()) / 1000L;
if (mMediaPlayer != null && mMediaPlayer instanceof IjkMediaPlayer) {
((IjkMediaPlayer) mMediaPlayer).setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "seek-at-start", newposition);
}
seekTo((int) newposition);
//记录最后需要seekto 的position。
curSeekPos = (int) newposition;
}
});
//重复 seekto
private void repeatSeekTo() {
curSeekCount++;
if (mMediaPlayer != null && mMediaPlayer instanceof IjkMediaPlayer) {
((IjkMediaPlayer) mMediaPlayer).setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "seek-at-start", curSeekPos);
}
seekTo(curSeekPos);
}
// 监听是不是 seekto 成功了,不成功重seekto,最大次数为 3 次
private IMediaPlayer.OnSeekCompleteListener mSeekCompleteListener = new IMediaPlayer.OnSeekCompleteListener() {
@Override
public void onSeekComplete(IMediaPlayer mp) {
boolean isSeekComplete = true;
if (curSeekPos > 0) {
if (Math.abs(mMediaPlayer.getCurrentPosition() - curSeekPos) <= 1000) {
curSeekPos = 0;
curSeekCount = 0;
} else if (curSeekCount <= 3) {
repeatSeekTo();
isSeekComplete = false;
}
}
}
};
android seekto实现_Android IjkPlayer seekto后会有时会向后跳跃?不准确怎么解决相关推荐
- android seekto实现_Android开发之音乐播放器的实现
Android音乐播放器 使用到Android的Actiivity和Service组件 播放音频的代码应该运行在服务中,定义一个播放服务MusicService,服务里定义play.stop.paus ...
- win10子系统编译android,基于win10子系统ijkplayer全量编译(支持所有格式)流程
1 环境搭建 1.1 编译环境说明 ijkplayer目前支持linux,mac平台编译.windows平台暂不支持.如果没有linux环境,可以使用win10自带的子系统ubuntu进行编译.win ...
- android edittext不可复制_Android中使EditText只读的方法(可恢复编辑状态)
可以通过以下几种方法实现EditText的只读属性 1. 方法一:使用EditText的android:Editable属性 将EditText的Editable属性设置为false后,EditTex ...
- h5+app Android上架华为应用市场被拒原因“拒绝获取手机权限后app会闪退“以及隐私政策问题
h5+app Android上架华为应用市场被拒原因"拒绝获取手机权限后app会闪退" 华为应用市场报错:拒绝获取手机权限后app会闪退,此问题解决方案如下: 在manifest. ...
- android 的由来,Android的词源_Android的由来_同根词_同源词_趣词词源字典
Android(安卓):炼金术大师大阿尔伯特所制造的人性机器 英语单词Android(安卓)来自炼金术大师大阿尔伯特(Albertus Magnus)所制造的为他服务的小侏儒"Android ...
- (android实战)第三方应用反编译并修改UI信息后,重新编译
在实际开发过程中,我们会看到好的第三方效果,羡慕不以,就想如何能看到被人的UI布局,下面就是如何对第三方应用进行反编译,并重新编译的全过程 第一步 下载android-apktool 下载路径:htt ...
- Android NDK调试出错Unknown Application ABI, Unable to detect application ABI#39;s的解决方式...
今天在调试Android NDK的时候,ADT的控制台报了这个错误: Unknown Application ABI, Unable to detect application ABI's 在网上查了 ...
- Android studio编译日志输出中文出现乱码 (如apk为中文命名时候)解决
Android studio编译日志输出中文出现乱码 (如apk为中文命名时候)解决 遇到乱码问题导致编译后 apk安装文件出错等 使用如下方法解决: 没有则点击**"create" ...
- [WFD][UIBC]连接Wifi display后,有时会自动启动物理键盘
[WFD][UIBC]连接Wifi display后,有时会自动启动物理键盘 [DESCRIPTION] 目前KK版本支持WIFI Display的load有时连接Wifi display dongl ...
最新文章
- Linux启动屏幕打印日志,linux启动时如何在屏幕上找到文本显示?这...
- ubuntu 允许root用户登陆ssh
- 产品经理,如何建立自己独特的产品观?(转)
- 把Liststring集合,编程string,并以“,”号分割
- 多图上传乱序php,discuz图片顺序混乱解决方案_php技巧
- Python查找所有类似于123-45-67+89 = 100的组合
- Dart的套接字与web套接字
- javaweb实训第六天下午——Mybatis基础
- r语言html爬虫,如何用R语言爬取网页中的表格
- php include_once 路径,php使用include加密路径的方法介绍
- 【渝粤教育】国家开放大学2018年秋季 0455-22T物流实务 参考试题
- 三津谈保险系统建设(一): 现状分析和建设目标规划
- 乌班图 修改ip_unbuntu(乌班图)虚拟机修改ip地址NAT模式
- Java面试知识点概览(持续更新)
- 一文说透所有期权基本交易策略
- 文字识别:Tesseract OCR
- html基础、h5c3高级c3动画 、 JavaScript初高级、css预处理器和git 部分面试题
- PubWin不知道密码情况下卸载
- 开心下单助手v1.0免费版
- 技术面常见问题(持续更新)