使用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];
}
答案 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];