我在我的应用程序中使用了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);
这里是AVPlayerItem播放的时间。
答案 0 :(得分:6)
在AVPlayerItem上设置forwardPlaybackEndTime
属性。
答案 1 :(得分:0)
我不知道AVPlayer
中是否有内置内容,但我要做的是构建一个函数并调用它:
[self performSelector:@selector(stopPlaying) withObject:nil afterDelay:45];
-(void)stopPlaying{
[player pause];
}
这将在45秒后停止播放,当然你可以将任意数量的秒数换成45秒。
答案 2 :(得分:0)
您可以将[AVPlayer addPeriodicTimeObserverForInterval:queue:usingBlock:]
用于此目的。
定期获取AVPlayer.currentTime
,并在确切时间呼叫暂停或停止。