我有一个视频文件存储在tmp目录中,url有效,视频有效。 问题是我在resultBlock中得到null值,无论我传入的是什么url。
ALAssetsLibrary *al = [[ALAssetsLibrary alloc] init];
[al assetForURL:url resultBlock:^(ALAsset *asset) {
NSLog(@"%@", asset); //asset is null/nil
} failureBlock:^(NSError *error) {
NSLog(@"Failed creating asset from url with error: %@", [error description]);
}];
答案 0 :(得分:1)
如果您的视频位于tmp
目录中,则它不在与ALAssetsLibrary
关联的资产商店中,您需要使用标准文件加载API(例如{{}来访问视频数据1}} / NSFileManager
。
如果您希望视频由NSData dataWithContentsOfURL:...
管理,则需要致电ALAssetsLibrary
以导入视频。然后,writeVideoAtPathToSavedPhotosAlbum:completionBlock:
将为您提供资产库网址(completionBlock
),可用于稍后检索视频(来自assetURL
)。