2014-09-01 112 views
1

我在我的應用程序中正在播放來自流的視頻文件的AVPlayer,我的問題是它有時會凍結,我必須再次按播放按鈕才能恢復。對於緩衝問題,我使用了下面的代碼,但仍然沒有成功,任何人都可以給我一個解決方案。AVPlayer緩衝問題

在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

回答

3

我認爲你的錯誤是試圖在球員,而不是玩家項目添加觀察家

你的代碼應該是

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

乾杯

+0

歡呼聲,我已經實施了 – Yrol 2014-10-17 03:56:53