大家好我正在使用AVQueuePlayer
播放一系列媒体文件(音频,视频)。我有时PlayItems
比我需要的持续时间短,即我希望某些项目之间保持沉默。我一直在考虑尝试使用addPeriodicTimeObserverForInterval
addBoundaryTimeObserverForTimes
的某种组合或运行我自己的NSTimer
。
它不需要超精确+或 - 1秒是可以接受的。 我想知道是否有任何集体智慧可以使用这些API调用来实现这种功能吗?
答案 0 :(得分:1)
为什么不观察物品的结束,然后,如果有必要,只在一定延迟后再次开始播放?
你开始观察AVPlayerItem
这样的结尾:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playEnded) name:AVPlayerItemDidPlayToEndTimeNotification object:playerItem];
然后,在playEnded
方法中,您可以决定需要等待多长时间,并在延迟后调用另一种方法开始播放下一个项目。
-(void)playEnded {
[self performSelector:@selector(playNextItem) withObject:nil afterDelay:5.0];
}