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];
干杯