1

请帮我解决我的问题:

我可以使用 ALAssetsLibrary 为 iPhone 库中的所有图像/视频提供 URL 和元数据吗?我可以编辑/删除这些图像/视频吗?

4

2 回答 2

9

上面的代码遗漏了一些大括号,所以在下面解决

ALAssetsLibrary *al = [[ALAssetsLibrary alloc] init];
assets = [[NSMutableArray alloc] init];
[al enumerateGroupsWithTypes:ALAssetsGroupAll

                  usingBlock:^(ALAssetsGroup *group, BOOL *stop)
 {
     [group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop)
      {
          if (asset)
          {  
               NSLog(@"%@",asset);  

              NSLog(@".. do something with the asset");    
          }
      }
      ];
 }

                         failureBlock:^(NSError *error)
      {
          // User did not allow access to library
         // .. handle error 
      }
      ] ;
于 2012-07-21T06:11:04.983 回答
5

在此处查看 ALAssetsLibrary 的文档。要访问所有照片和视频,您需要枚举照片库中的所有组(相册),然后枚举每个组中的所有照片和图像。您无法使用 API 删除资产。iOS 5 添加了额外的功能——尽管它仍处于 NDA 之下,无法在此处讨论——请查看 iOS5 的 beta 文档和 Apple 开发者论坛。

您的代码将需要执行以下操作:

ALAssetsLibrary *al = [[ALAssetsLibrary alloc] init];


[al enumerateGroupsWithTypes:ALAssetsGroupAll

    usingBlock:^(ALAssetsGroup *group, BOOL *stop)
    {
        [group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop)
        {
            if (asset)
            {                
                 .. do something with the asset
            }
        }
        ];
    }

    failureBlock:^(NSError *error)
    {
        // User did not allow access to library
        .. handle error 
    }
 ];
于 2011-09-27T16:28:13.680 回答