IJKPlayer 快进快退 (Seek) 不准问题解决方法

标签: iOS


在使用Ijkplayer的时候发现快进快退不准问题,通过阅读源码,找到Seek的函数,通过设置不同的标志位来修改Seek的类型


1. 在IJKPlayer 库文件源码中搜索 av_seek_frame 或者avformat_seek_file 这两个函数

avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags);
av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp,
                  int flags);

2. 修改其中最后一个参数flags

其中flag对应的宏定义如下

#define AVSEEK_FLAG_BACKWARD  1 ///< seek backward
#define AVSEEK_FLAG_BYTE      2 ///< seeking based on position in bytes
#define AVSEEK_FLAG_ANY       4 ///< seek to any frame, even non-keyframes
#define AVSEEK_FLAG_FRAME     8 ///< seeking based on frame numbe

flags修改为AVSEEK_FLAG_ANY 即可(不过修改AVSEEK_FLAG_ANY会引起快进快退后第一帧花屏问题,可能这也是IJKPlayer没有设置成AVSEEK_FLAG_ANY的原因)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。