AVPlayer缓冲问题

我有一个AVPlayer在我的应用程序正在播放video文件从一个stream,我的问题是有时冻结,我不得​​不再次播放button继续。 对于缓冲问题,我使用了下面的代码,但仍然没有成功,任何人都可以给我一个解决scheme。

在ViewDidLoad方法中

[mPlayer addObserver:self forKeyPath:@"playbackBufferEmpty" options:NSKeyValueObservingOptionNew context:nil]; [mPlayer addObserver:self forKeyPath:@"playbackLikelyToKeepUp" options:NSKeyValueObservingOptionNew context:nil]; 

在observeValueForKeyPath方法中

 if (!mPlayer) { return; } else if (object == mPlayerItem && [path isEqualToString:@"playbackBufferEmpty"]) { if (mPlayerItem.playbackBufferEmpty) { //Your code here } } else if (object == mPlayerItem && [path isEqualToString:@"playbackLikelyToKeepUp"]) { if (mPlayerItem.playbackLikelyToKeepUp) { //Your code here } } 

但是上面的if语句永远不会被调用。 此外,我正在使用在这里演示的AVPlayerDemo类: https : //developer.apple.com/library/ios/samplecode/AVPlayerDemo/Listings/Classes_AVPlayerDemoPlaybackViewController_m.html

我认为你的错误是试图添加观察员而不是玩家项目

你的代码应该是

 [mPlayerItem addObserver:self forKeyPath:@"playbackBufferEmpty" options:NSKeyValueObservingOptionNew context:nil]; [mPlayerItem addObserver:self forKeyPath:@"playbackLikelyToKeepUp" options:NSKeyValueObservingOptionNew context:nil]; 

干杯