2017-05-27 41 views
0

我在使用requestAVAssetForVideo提取視頻時遇到了一些問題。這似乎是,在取得一些視頻時,dispatch_async永遠不會被調用,在其他視頻中它被調用並按預期工作。有人可以發現問題可能是什麼?requestAVAssetForVideo在獲取某些視頻時似乎掛起

- (void)videoSelected:(long)selectedVideoIndex { 

    PHAsset *selectedVideo = [self.allVideos objectAtIndex:selectedVideoIndex]; 

    PHVideoRequestOptions *options = [[PHVideoRequestOptions alloc] init]; 
    options.networkAccessAllowed = YES; 


    self.movieInformation = [[NSMutableDictionary alloc] init]; 

    [[PHImageManager defaultManager] requestAVAssetForVideo:selectedVideo options:options resultHandler:^(AVAsset *avAsset, AVAudioMix *audioMix, NSDictionary *info) { 
     // Use the AVAsset avAsset 

     dispatch_async(dispatch_get_main_queue(), ^{ 
      [self loadingScreen]; 
      [self loadTheVideo:avAsset]; 
     }); 

    }]; 



} 

UPDATE 這似乎是,當我使用照片應用程序運行相同的視頻他們也掛以及和微調不斷去。有沒有辦法添加一個視頻失敗時被調用的超時屬性?

回答

1

對於存儲在iCloud中的視頻/圖像,延遲是正常的。如果您已啓用iCloud備份並在手機設置中啓用優化存儲,則您的iPhone會將視頻和圖像備份到iCloud,並保留較低分辨率的圖像和僅縮略圖的視頻,並在需要時從iCloud獲取。

networkAccessAllowed您的代碼負責從iCloud獲取視頻或圖像。如果是OFF,iOS不會爲存儲在iCloud中的項目煩擾 - 它只會獲取設備中的本地內容。