Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 使用AVPlayer循环播放电影的特定片段-始终返回到开头_Objective C_Ios_Avfoundation_Avplayer - Fatal编程技术网

Objective c 使用AVPlayer循环播放电影的特定片段-始终返回到开头

Objective c 使用AVPlayer循环播放电影的特定片段-始终返回到开头,objective-c,ios,avfoundation,avplayer,Objective C,Ios,Avfoundation,Avplayer,我有一个大约12秒长的视频。5-10秒是可循环的 我想从第一次开始播放视频,然后在5-10秒内继续循环播放 然而,当我尝试时,视频又跳回到了开头。 我做错什么了吗?视频为H.264 mp4格式 下面是我使用的一段代码:(每帧调用一次update函数) 任何帮助都将不胜感激 谢谢, Rich大多数玩家只会搜索I图片(内部图片)。这可能是因为你的剪辑开头只有一张I图片,5秒后还有一张。检查一下。如果可以重新编码,则每1秒插入I图片进行重新编码,以允许您执行此操作。如果特定视频上的关键帧间隔大于5秒,

我有一个大约12秒长的视频。5-10秒是可循环的

我想从第一次开始播放视频,然后在5-10秒内继续循环播放

然而,当我尝试时,视频又跳回到了开头。 我做错什么了吗?视频为H.264 mp4格式

下面是我使用的一段代码:(每帧调用一次update函数)

任何帮助都将不胜感激

谢谢,
Rich

大多数玩家只会搜索I图片(内部图片)。这可能是因为你的剪辑开头只有一张I图片,5秒后还有一张。检查一下。如果可以重新编码,则每1秒插入I图片进行重新编码,以允许您执行此操作。

如果特定视频上的关键帧间隔大于5秒,则可能正在查找关键帧

尝试调整视频的编码方式,以便能够在5秒标记处获得关键帧,或者使用

[m_player seekToTime:CMTimeMakeWithSeconds(5.0f, time.timescale) toleranceBefore: kCMTimeZero toleranceAfter: kCMTimeZero];
请注意,如果执行此操作,解码器将必须先解码这5秒钟的视频,然后才能在您想要的点恢复播放,因此您可能会在循环中出现短暂延迟

[m_player seekToTime:CMTimeMakeWithSeconds(5.0f, time.timescale) toleranceBefore: kCMTimeZero toleranceAfter: kCMTimeZero];