【问题标题】:assetForURL always return asset as nullassetForURL 始终将资产返回为 null
【发布时间】:2014-03-02 16:03:28
【问题描述】:

我有一个视频文件存放在tmp目录下,url有效,视频有效。 问题是,无论我传入什么 url,我都会在 resultBlock 中得到空值。

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]);
}];

【问题讨论】:

    标签: objective-c alasset


    【解决方案1】:

    如果您的视频位于 tmp 目录中,则它不在与 ALAssetsLibrary 关联的资产存储中,您需要使用标准文件加载 API 访问视频数据(如 NSFileManager / @987654324 @。

    如果您希望视频由ALAssetsLibrary 管理,您需要调用writeVideoAtPathToSavedPhotosAlbum:completionBlock: 来导入视频。然后,completionBlock 将为您提供一个资产库 URL (assetURL),以后可以使用它来检索视频(来自 ALAssetsLibrary)。

    【讨论】:

    • 是的,但随后视频也会存储在 cameraRoll 中,这对我来说是不想要的结果。我想我需要考虑如何解决这个问题......谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 2016-05-31
    • 2015-08-15
    • 2012-03-18
    • 2016-11-04
    • 2016-07-28
    相关资源
    最近更新 更多