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的原因)

你可能感兴趣的:(IJKPlayer 快进快退 (Seek) 不准问题解决方法)