2015-12-30 135 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

我想,也許你在這裏保留週期。你可以檢查你是否保留的控制器。在添加項目之前,您可以嘗試刪除觀察者時間。