2016-08-30 14 views

答えて

0

私が見つけた解決策は、基礎となるAVAssetが、AVPlayerに供給する前に、その期間などの基本情報を返す準備が整っていることを確認することでした。私の場合は

AVAsset *asset = [AVAsset assetWithURL:self.mediaURL]; 
[asset loadValuesAsynchronouslyForKeys:@[@"duration"] completionHandler:^{ 
    AVPlayerItem *newItem = [[AVPlayerItem alloc] initWithAsset:asset]; 
    [self.avPlayer replaceCurrentItemWithPlayerItem:newItem]; 
}]; 

URLがネットワーク資源であり、replaceCurrentItemWithPlayerItem:実際にこの情報がそれ以外の場合はダウンロードするのを待っている数秒間ブロックしますAVAssetは、このための便利な方法をloadValuesAsynchronouslyForKeys:ています。

関連する問題