2015-12-30 107 views
1

我正在使用AVPlayer和PIP(画中画)支持进行视频回放。我发现一些崩溃时deallocAVPlayer。如果玩家处于PIP状态,并且应用程序调用了:AVPlayer无法删除时间观察者

[self.player removeTimeObserver:self.timeObserver]` 

该应用程序会崩溃,并显示以下信息。

终止应用程序由于未捕获的异常“NSInvalidArgumentException”,原因:“AVPlayer的实例不能移除由AVPlayer的不同实例增加了一个时间观察者”。

它只发生在PIP状态,我检查AVPlayer不改变。谢谢,有什么想法?

回答

-1

您可以使用尝试捕捉为喜欢,

@try{ 
    [player removeObserver:self forKeyPath:@"rate"]; 
}@catch(id anException){ 
    //do nothing, obviously it wasn't attached because an exception was thrown 
} 
+0

是的,我会如果没有更好的解决方案。但我想知道为什么会发生这种情况。 – RayChen

+0

我想你正在播放按钮上创建多个播放器实例。所以在给玩家分配新实例之前,检查是否为零 – jay

0

我想,也许你在这里保留周期。你可以检查你是否保留的控制器。在添加项目之前,您可以尝试删除观察者时间。