1

大家好,我AVQueuePlayer用来播放一系列媒体文件(音频、视频)。我有时会PlayItems比我需要的持续时间短,即我希望某些项目之间保持沉默。我一直在考虑尝试使用某种组合addPeriodicTimeObserverForInterval addBoundaryTimeObserverForTimes或运行我自己的NSTimer.

它不需要非常准确 + 或 - 1 秒是可以接受的。我想知道是否有任何关于使用这些 API 调用来实现这种功能的集体智慧?

4

1 回答 1

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];
}
于 2011-08-11T15:51:02.643 回答