assetForURL始终将资产返回null

时间:2014-03-02 16:03:28

标签: objective-c alasset

我有一个视频文件存储在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]);
}];

1 个答案:

答案 0 :(得分:1)

如果您的视频位于tmp目录中,则它不在与ALAssetsLibrary关联的资产商店中,您需要使用标准文件加载API(例如{{}来访问视频数据1}} / NSFileManager

如果您希望视频由NSData dataWithContentsOfURL:...管理,则需要致电ALAssetsLibrary以导入视频。然后,writeVideoAtPathToSavedPhotosAlbum:completionBlock:将为您提供资产库网址(completionBlock),可用于稍后检索视频(来自assetURL)。