我有一个大约12秒长的视频。秒5-10是可循环的。
我想从第一次开始播放视频,然后继续循环5-10秒,然后无限循环。
然而,当我尝试时,视频只是再次跳回到开头。我是不是做错了什么?视频为H.264 mp4格式。
下面是我使用的代码片段:(每个帧都会调用update函数)
-(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)];
}
}
任何帮助都将不胜感激。
谢谢你,瑞奇
发布于 2012-08-07 01:53:50
大多数玩家只会寻找I图片(内部图片)。可能您的剪辑在开始时只有一张I图片,5秒后又有一张。看看这个。如果您可以重新编码,则使用每隔1秒插入的I图片重新编码,以允许您执行此操作。
发布于 2012-08-07 01:57:03
如果特定视频上的关键帧间隔大于5秒,则它可能正在寻找关键帧。
尝试调整视频的编码方式,以便能够在5秒标记处获得关键帧,或者使用
[m_player seekToTime:CMTimeMakeWithSeconds(5.0f, time.timescale) toleranceBefore: kCMTimeZero toleranceAfter: kCMTimeZero];
请注意,如果这样做,解码器将不得不解码这5秒的视频,然后才能在您想要的点处恢复播放,因此您可能会在循环中出现短暂的延迟。
https://stackoverflow.com/questions/11743134
复制相似问题