2016-09-26 45 views
0

延遲時間約爲10秒。 我的代碼片段。這是*的HomeController的.m文件:AVPlayer在長時間延遲後開始重放視頻

@interface HomeController() 
@property(nonatomic, strong) AVPlayerViewController *playerViewController; 
@implementation HomeController 
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    ... 
    self.playerViewController = [[AVPlayerViewController alloc] init]; 
} 
- (IBAction)watchDemoToggle:(id)sender { 
    NSURL *url = [NSURL URLWithString:@"http://blahblahblah.com/demo.mp4"]; 
     AVURLAsset *asset = [AVURLAsset assetWithURL: url]; 
     AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:asset]; 
    if(playerItem) 
    { 
     AVPlayer *player = [[AVPlayer alloc] initWithPlayerItem:playerItem]; 
     self.playerViewController.player = player; 
     [self.playerViewController.player addObserver:self forKeyPath:@"status" options:0 context:nil]; 
     [self.playerViewController setShowsPlaybackControls:NO]; 
     [self presentViewController:self.playerViewController animated:YES completion:^{ 
      [self.playerViewController.player play]; 
      self.playerViewController.showsPlaybackControls = YES; 
     }]; 
    } 
} 

#pragma mark - KVO 
- (void)observeValueForKeyPath:(NSString *)keyPath 
         ofObject:(id)object 
         change:(NSDictionary *)change 
         context:(void *)context { 
     if ([keyPath isEqualToString:@"status"]) { 
      AVPlayerStatus status = [change[NSKeyValueChangeNewKey] integerValue]; 
      NSLog(@"status = %ld", (long)status); 
     } 
} 

我志願加入,並得到結果後,點擊播放的播放器狀態AVPlayerStatusUnknown。之後,儘管視頻正在複製,但並未發生變化。 有沒有人有任何想法?

回答

3

將AVPlayer的自動更改爲MinitizeStalling屬性設置爲false,以便立即開始播放。

AVPlayer *player = [[AVPlayer alloc] initWithPlayerItem:playerItem]; 
player.automaticallyWaitsToMinimizeStalling = false; 

但是,如果足夠的內容不可用於播放,則播放器可能會失速。

有關更多詳細信息,請參閱此Apple文檔。

avplayer

+0

非常感謝!我不明白爲什麼我自己沒有找到它。但是你怎麼看待這個問題:我添加了KVO並得到了點擊播放後狀態爲AVPlayerStatusUnknown的結果。之後,儘管視頻正在複製,但並未發生變化。有人有什麼主意嗎? –

+0

AVPlayerStatusUnknown表示播放器的狀態尚未知道,因爲它尚未嘗試加載新媒體資源進行播放。您可以使用本地URL進行檢查嗎?如果問題存在。 –

+0

該屬性僅適用於iOS 10及以上是否有任何其他解決方案來支持iOS 9以及 – sanman