debugly / ijkplayer

iOS/macOS/tvOS video player based on ijkplayer, using FFmpeg 6, support Metal、hw accel、HDR、ass subtitle effect...
https://ijkplayer.debugly.cn/
GNU General Public License v2.0
119 stars 20 forks source link

【QA】关于设置播放时间currentPlaybackTime #29

Open zdw19840929 opened 5 months ago

zdw19840929 commented 5 months ago

大佬我问一个设置播放时间的问题 使用场景是这样的,当我滑动进度条的时候,我想把滑动到那个位置的视频图片展示出来,所以我在滑动过程中设置了currentPlaybackTime,然后通过thumbnailImageAtCurrentTime获取当前的图片。但是这样目前有个问题,就是多次设置currentPlaybackTime会失效,导致最后滑动的位置不准确,这种如何解决呢? 我看了下log,设置时间的事件貌似被忽略了 [IJKMEDIA]ijkmp_seek_to(487396) [IJKMEDIA]ijkmp_seek_to(487396)=0 [IJKMEDIA]ijkmp_get_msg: FFP_REQ_SEEK [IJKMEDIA]ignore stream_seek 487396000(487396) + 0, [IJKMEDIA]ijkmp_start() [IJKMEDIA]ijkmp_start()=0 [IJKMEDIA]ijkmp_get_msg: FFP_REQ_START [IJKMEDIA]ijkmp_get_msg: FFP_REQ_START: start on fly [IJKMEDIA]aout_pause_audio(1)

debugly commented 5 months ago

设置currentPlaybackTime的频率太高了,你可以打印下看看你调用了多少次; 每次设置都会触发seek,如果上次seek没有完成就会忽略当次seek。

debugly commented 5 months ago

我知道你的意思了,不过调用 thumbnailImageAtCurrentTime 实现你说的效果不合适,因为内部调用的是截屏。

zdw19840929 commented 5 months ago

设置currentPlaybackTime的频率太高了,你可以打印下看看你调用了多少次; 每次设置都会触发seek,如果上次seek没有完成就会忽略当次seek。

对,目前效果是这样的,因为调用次数过多,之前的没有完成就忽略了最后一次,大佬有什么办法实现滑动过程中获取响应时间的视频截图的方法吗?

debugly commented 4 months ago

可以用 https://github.com/debugly/MRVideoToPicture 对视频进行抽帧,保存成图片,实现预览功能。 后续我看看能否在ijk里实现一个指定位置抽帧的方法。

zdw19840929 commented 4 months ago

好的 谢谢大佬的回复 我看下这里