AVPlayer と AVPlayerLayer を使用して再生するには、AVAsset オブジェクトを使用する必要があります。AssetsLibrary が非推奨になったため、Photos フレームワークを使い始めました。これで、PHAsset オブジェクトの配列があり、それらを AVAsset に変換する必要があるところまで来ました。PHFetchResult を列挙し、PHAsset のローカライズされた説明を使用して新しい AVAsset を割り当てようとしましたが、再生してもビデオが表示されないようです。
PHAssetCollection *assetColl = [self scaryVideosAlbum];
PHFetchResult *getVideos = [PHAsset fetchAssetsInAssetCollection:assetColl options:nil];
[getVideos enumerateObjectsUsingBlock:^(PHAsset *asset, NSUInteger idx, BOOL *stop) {
NSURL *videoUrl = [NSURL URLWithString:asset.localizedDescription];
AVAsset *avasset = [AVAsset assetWithURL:videoUrl];
[tempArr addObject:avasset];
}];
ローカライズされた説明は、動画の絶対 URL ではないと思います。
PHImageManager と requestAVAssetForVideo にも出くわしましたが、ビデオに関しては、オプション パラメータには isSynchrounous プロパティがありません。これは、画像オプション パラメータの場合です。
PHVideoRequestOptions *option = [PHVideoRequestOptions new];
[[PHImageManager defaultManager] requestAVAssetForVideo:videoAsset options:option resultHandler:^(AVAsset * _Nullable avasset, AVAudioMix * _Nullable audioMix, NSDictionary * _Nullable info) {
これを行う同期方法はありますか?
ありがとう。