我的视频大约有12秒钟。秒5-10是可循环的。
我想从第一次开始播放视频,然后无限期地继续循环播放5-10秒。
然而,当我尝试时,视频再次跳回到开头。 我在这里做错了吗?视频是H.264 mp4格式。
这是我使用的一段代码:(每帧调用更新函数)
-(void) update:(double)timeDelta
{
if ( !m_player ) {
return;
}
CMTime time = m_player.m_player.currentTime;
if ( CMTimeGetSeconds(time) > 10.0f ) {
[m_player seekToTime:CMTimeMakeWithSeconds(5.0f, time.timescale)];
}
}
非常感谢任何帮助。
谢谢, 富
答案 0 :(得分:0)
大多数玩家只会寻找I图片(Intra图片)。可能是你的剪辑在开始时只有一张I图片,在5秒后只有另一张图片。检查一下。如果您可以重新编码,则每隔1秒钟插入一张I图片进行重新编码,以便进行此操作。
答案 1 :(得分:0)
如果该特定视频的关键帧间隔大于5秒,它可能正在寻找一个关键帧。
尝试调整视频的编码方式,以便能够在5秒标记处获得关键帧或使用
[m_player seekToTime:CMTimeMakeWithSeconds(5.0f, time.timescale) toleranceBefore: kCMTimeZero toleranceAfter: kCMTimeZero];
请注意,如果你这样做,解码器必须解码那5秒钟的视频才能在你想要的时间点恢复播放,这样你的循环可能会有短暂的延迟。