2013-08-29 7 views
7

का उपयोग करके वीडियो कैसे प्राप्त करूं, मैं कोड के निम्नलिखित भाग से फोटो लाइब्रेरी से वीडियो प्राप्त करने का प्रयास कर रहा हूं। लेकिन मुझे छवियों की सूची भी मिलती है। मुझे सभी वीडियो की सूची कैसे मिलती है? मैं क्या गलत कर रहा हूं?मैं केवल एलासेट्स लाइब्रेरी

NSMutableArray* assetURLDictionaries = [[NSMutableArray alloc] init]; 
xy =[[NSMutableArray alloc]init]; 
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 

void (^assetEnumerator)(ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop) { 
    if(result != nil) { 
     if([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypeVideo]) { 
      [assetURLDictionaries addObject:[result valueForProperty:ALAssetPropertyURLs]]; 

      NSLog(@"result is:%@",result); 
      NSLog(@"asset URLDictionary is:%@",assetURLDictionaries); 
      NSURL *url= (NSURL*) [[result defaultRepresentation]url]; 

      [library assetForURL:url 
        resultBlock:^(ALAsset *asset) { 
         [xy addObject:[UIImage imageWithCGImage:[[asset defaultRepresentation] fullScreenImage]]]; 
         NSLog(@" xy is:%@",xy); 
         image =[ [UIImageView alloc ] initWithImage:[xy objectAtIndex:0]]; 
         NSLog(@"image is:%@",image); 
        } 
        failureBlock:^(NSError *error){ NSLog(@"test:Fail"); } ]; 
     } 
    } 
}; 

NSMutableArray *assetGroups = [[NSMutableArray alloc] init]; 
void (^ assetGroupEnumerator) (ALAssetsGroup *, BOOL *)= ^(ALAssetsGroup *group, BOOL *stop) { 
    NSLog(@"hello"); 
    if(group != nil) { 
     [group enumerateAssetsUsingBlock:assetEnumerator]; 
     [assetGroups addObject:group]; 
     NSLog(@"Number of assets in group :%d",[group numberOfAssets]); 
     NSLog(@"asset group is:%@",assetGroups); 
    } 
}; 

assetGroups = [[NSMutableArray alloc] init]; 

[library enumerateGroupsWithTypes:ALAssetsGroupAll 
         usingBlock:assetGroupEnumerator 
        failureBlock:^(NSError *error) {NSLog(@"A problem occurred");}]; 

उत्तर

17

आपको गणना के दौरान समूह में एलासेट्सफिल्टर जोड़ने की आवश्यकता है। यहाँ एक बुनियादी उदाहरण है:

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

[library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) { 
    if (group) { 
     [group setAssetsFilter:[ALAssetsFilter allVideos]]; 
     [group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop){ 
      if (asset){ 

       NSDictionary *meta = [[asset defaultRepresentation] metadata]; 

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

भविष्य में संदर्भ के लिए, available filters हैं:

- allPhotos 
- allVideos 
- allAssets 
+0

ध्यान दें कि करने के लिए [डॉक्स] अनुसार (https://developer.apple.com/library/ios/documentation /AssetsLibrary/Reference/ALAssetsLibrary_Class/Reference/Reference.html#//apple_ref/doc/constant_group/Types_of_Asset) 'अलास्सेट्स समूहअल'' 'एलासेट्स समूह समूह' के अलावा सभी समूह प्रकारों को एक साथ ऑरिंग जैसा ही है। यदि आप आईट्यून्स भी चाहते हैं, तो 'एलासेट्स समूह समूह' का उपयोग करें अलास्सेट्स ग्रुप लाइब्रेरी 'जिसमें "आईट्यून्स से सिंक की गई सभी संपत्तियां शामिल हैं"। – bcattle

संबंधित मुद्दे