使用AVPlayer for iPhone,SeekToTime只为我重新启动视频

Tid*_*dly 1 iphone video ios4 ios avplayer

我想从0.02秒开始播放相当短的视频(0.05秒).我使用下面的代码:

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

[player seekToTime: replayBeginTime toleranceBefore: tolerance toleranceAfter: tolerance];
[player play];
Run Code Online (Sandbox Code Playgroud)

玩家是AVPlayer*.视频从开始到结束都很好,然后我点击一个按钮返回到大约中间点,它应该从那里播放,但每次它只是重新启动视频.

我不是100%肯定我正确使用CMTimeMake.

任何帮助搞清楚我做错了什么都会非常感激.

Sam*_*art 6

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

CMTime newTime = CMTimeMakeWithSeconds(0.2, 1);
[player seekToTime:newTime];
Run Code Online (Sandbox Code Playgroud)

祝好运.