我试图从0.02秒开始播放相当短的视频(0.05秒)。我使用下面的代码:
CMTime tolerance = CMTimeMake(0,1);
CMTime replayBeginTime = CMTimeMake(1, 50);
[player seekToTime: replayBeginTime toleranceBefore: tolerance toleranceAfter: tolerance];
[player play];
玩家是AVPlayer *。视频从开始到结束都很好,然后我点击一个按钮返回到大约中间点,它应该从那里播放,但每次它只是重新启动视频。
我不是100%肯定我正确使用CMTimeMake。
任何帮助弄清楚我做错了什么都会非常感激。
答案 0 :(得分:6)
您正在创建值为1/50 = 0.02的CMTime,因此您正确使用CMTimeMake。但我想也许你应该使用CMTimeMakeWithSeconds代替。因为CMTimeMake只能采用秒的整数值,而CMTimeMakeWithSeconds可以采用浮点数。 你应该这样使用它。
CMTime newTime = CMTimeMakeWithSeconds(0.2, 1);
[player seekToTime:newTime];
祝你好运。