AVPlayer播放准确的时间

时间:2016-03-17 12:25:07

标签: ios avplayer

使用AVPlayer我想播放一个mov文件正好1秒然后暂停它。

目前我正在播放mov,然后设置一个计时器,在1秒后暂停,如下所示。不幸的是,这似乎并不准确,而且有时播放时间略短或超过1秒。请问有更准确的方法吗?

[self.player4 play];
[self performSelector:@selector(pausePlayer4:) withObject:nil afterDelay:1.0];

- (void)pausePlayer4:(NSTimer *)timer
{
    [self.player4 pause];
}

2 个答案:

答案 0 :(得分:1)

即使你能够准确地发射一个事件,iOS设备上的媒体播放也会发生在一个完全不同的过程(一个守护进程)中,并且在进行IPC时总会有延迟。

根据您的需要,最好构建一个AVMutableComposition来播放AVURLAsset内容的一秒,然后将合成内容分配给您的播放器。

答案 1 :(得分:0)

最好的方法是在第二次

之后添加一个边界观察者来触发
    NSValue *endBoundary = [NSValue valueWithCMTime:CMTimeMakeWithSeconds(1.0, 300)];

    [self.player4 addBoundaryTimeObserverForTimes:@[endBoundary]
                                            queue:NULL
                                       usingBlock:^{
                                        [self.player4 stop];
                                        }];

    [self.player4 play];