如何列出用户设备中的所有视频

时间:2015-06-24 06:37:19

标签: ios alassetslibrary

我想创建一个自定义库,我将获取所有带有文件夹名称的视频。我实现了一些代码,但这不能正常工作。我的代码从某些文件夹中获取视频,但也删除了一些文件夹我想要获取所有文件夹。

这是我的代码: -

 -(void)getAllVideos
{
 assetItems = [NSMutableArray arrayWithCapacity:0];
allVideos = [[NSMutableArray alloc] init];
ALAssetsLibrary *assetLibrary = [[ALAssetsLibrary alloc] init];

[assetLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop)
 {
     if (group)

     {
         NSString * str = [NSString stringWithFormat:@"%@",group];
         int power = [str rangeOfString:@","].location;
         NSString *str1= [str substringToIndex:power];

         int dash = [str rangeOfString:@":"].location;
         NSString *final = [str1 substringFromIndex:dash+1];

         combineArray =[[NSMutableArray alloc]init];
         thumbnailImages = [[NSMutableArray alloc]init];
         videosURL = [[NSMutableArray alloc]init];

         NSLog(@"name of folder%@",group);
         [groupName addObject:final];

         [group setAssetsFilter:[ALAssetsFilter allVideos]];
         [group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop)
          {

              if (asset)
              {
                  dic = [[NSMutableDictionary alloc] init];
                  ALAssetRepresentation *defaultRepresentation = [asset defaultRepresentation];
                  NSString *uti = [defaultRepresentation UTI];
                  NSURL  *videoURL = [[asset valueForProperty:ALAssetPropertyURLs] valueForKey:uti];
                  NSString *title = [NSString stringWithFormat:@"video %d", arc4random()%100];


                  AVAsset *asset = [AVAsset assetWithURL:videoURL];
                  AVAssetImageGenerator *imageGenerator = [[AVAssetImageGenerator alloc]initWithAsset:asset];
                  CMTime time = [asset duration];
                  time.value = 0;
                  CGImageRef imageRef = [imageGenerator copyCGImageAtTime:time actualTime:NULL error:NULL];
                  UIImage *thumbnail = [UIImage imageWithCGImage:imageRef];
                  CGImageRelease(imageRef);



                  [thumbnailImages addObject:thumbnail];
                  [videosURL addObject:videoURL];




              }

          } ];
         if(thumbnailImages.count >0)
         [combineArray addObject:thumbnailImages];

         if(videosURL.count > 0)
         [combineArray addObject:videosURL];
         if(combineArray.count>0)
         [alldata setObject:combineArray forKey:final];
     }
     // group == nil signals we are done iterating.
     else
     {
         dispatch_async(dispatch_get_main_queue(), ^{

         });
     }
 }
                          failureBlock:^(NSError *error)
 {
     NSLog(@"error enumerating AssetLibrary groups %@\n", error);
 }];




}

请告诉我必须做哪些更改?

0 个答案:

没有答案