删除AVPlayerItem观察者

时间:2014-09-08 16:56:32

标签: iphone avqueueplayer avplayeritem

如果我使用KVO观察我的播放器项目:

    AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:url];
    [playerItem addObserver:self forKeyPath:@"status" options:NSKeyValueObservingOptionNew context:MyClassKVOContext];
    [playerItem addObserver:self forKeyPath:@"playbackBufferEmpty" options:NSKeyValueObservingOptionNew context:MyClassKVOContext];
    [playerItem addObserver:self forKeyPath:@"playbackLikelyToKeepUp" options:NSKeyValueObservingOptionNew context:MyClassKVOContext];
    [playerItem addObserver:self forKeyPath:@"loadedTimeRanges" options:NSKeyValueObservingOptionNew context:MyClassKVOContext];

两个问题:

1)项目结束后我是否需要删除观察者? (即在AVPlayerItemDidPlayToEndTimeNotification

2)如果我打电话给[_avQueuePlayer removeAllItems]它是否也删除了每个项目的观察者?

1 个答案:

答案 0 :(得分:1)

制作你的玩家对象(AVPlayerItem * playerItem)全局并设置其属性并合成它。

1)项目结束后我是否需要删除观察者? (即在AVPlayerItemDidPlayToEndTimeNotification中)

  
    

是的,当您要将该视图控制器放在该播放器正在播放的位置时,您需要移除所有观察者。不是在比赛结束后。

  

2)如果我调用[_avQueuePlayer removeAllItems]它是否也会删除每个项目的观察者?

  
    

是的,它会删除为该全局变量设置的所有观察者。