5

我在我的应用程序中使用了 seekToTime 并且它工作正常。但我想了解更多有关它的信息。也就是说,如果我现在有一个 1 分钟的流式视频文件,我想从第 15 秒到第 45 秒播放它(前 15 秒和最后 15 秒不会播放)。

我该怎么做?

我知道通过使用 seekToTime 我可以从第 15 秒开始播放视频,但是如何在第 45 秒停止播放,并且还可以通过视频在指定时间段内播放的方法引起注意?

CMTime timer = CMTimeMake(15, 1);
[player seekToTime:timer];

上面的代码将我带到流文件的第 15 秒,但如何在第 45 秒停止它并获得通知?

我已经搜索了很多,但无法获得任何信息。

谢谢

编辑:

正如@codeghost 建议的那样,只需使用forwardPlaybackEndTime.

您可以简单地使用:

yourAVPlayerItem.forwardPlaybackEndTime = CMTimeMake(10, 1);

这里 10 是播放 AVPlayerItem 的时间。

4

3 回答 3

6

forwardPlaybackEndTime在您的 AVPlayerItem 上设置属性。

于 2012-05-16T08:57:07.843 回答
0

我不知道是否有内置的东西AVPlayer,但我会做的是构建一个函数并调用它:

[self performSelector:@selector(stopPlaying) withObject:nil afterDelay:45];


-(void)stopPlaying{
   [player pause];
}

这将在 45 秒后停止播放,当然您可以将 45 改为您想要的任意秒数。

于 2012-05-16T09:50:06.087 回答
0

您可以[AVPlayer addPeriodicTimeObserverForInterval:queue:usingBlock:]用于此目的。

定期获取AVPlayer.currentTime,并在确切时间调用暂停或停止。

于 2013-05-03T08:39:35.113 回答