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