1

我正在尝试从 0.02 秒开始播放相当短的视频(0.05 秒)。我使用下面的代码:

CMTime tolerance = CMTimeMake(0,1);
CMTime replayBeginTime = CMTimeMake(1, 50);

[player seekToTime: replayBeginTime toleranceBefore: tolerance toleranceAfter: tolerance];
[player play];

其中 player 是 AVPlayer*。视频从头到尾播放良好,然后我按下一个按钮回到大约一半的位置,它应该从那里播放,但每次它只是重新启动视频。

我不是 100% 确定我正确使用了 CMTimeMake。

任何帮助找出我做错了什么将不胜感激。

4

1 回答 1

6

您正在创建一个值为 1/50 = 0.02 的 CMTime,因此您正确使用了 CMTimeMake。但我认为也许你应该使用 CMTimeMakeWithSeconds 代替。因为 CMTimeMake 只能取整数值秒,而 CMTimeMakeWithSeconds 可以取浮点数。你应该像这样使用它。

CMTime newTime = CMTimeMakeWithSeconds(0.2, 1);
[player seekToTime:newTime];

祝你好运。

于 2011-07-11T18:58:31.547 回答