Access Burst Mode photos in library Access Burst Mode photos in library ios ios

Access Burst Mode photos in library


From my understandings, the Burst Mode photos will be added to the library as one by one.The ALAssetProperty type of each image will be ALAssetTypePhoto.So you can get each photo separately using the below ALAsset block. You can't retrieve only the set of Burst Mode photos at a time because there are only 7 types of ALAssetsGroupTypes and 3 kinds of ALAssetsFilters are available. None of them are dealing with Burst Mode photos.

I hope Apple will provide Burst photo filtering in the future.

---------------------------- ALAssetsGroupType -------------------------------------------ALAssetsGroupLibrary      // The Library group that includes all assets.ALAssetsGroupAlbum        // All the albums synced from iTunes or created on the device.ALAssetsGroupEvent        // All the events synced from iTunes.ALAssetsGroupFaces        // All the faces albums synced from iTunes.ALAssetsGroupSavedPhotos  // The Saved Photos album.ALAssetsGroupPhotoStream  // The PhotoStream album.ALAssetsGroupAll          // The same as ORing together all the available group types,with the exception that ALAssetsGroupLibrary is not included.-------------------------- ALAssetsFilter ------------------------------------------------+ (ALAssetsFilter *)allPhotos; // Get all photos assets in the assets group.+ (ALAssetsFilter *)allVideos; // Get all video assets in the assets group.+ (ALAssetsFilter *)allAssets; // Get all assets in the group.

Use the below code to get each photo separately including the Burst Mode photos,

- (void)findBurstModePhotos{    ALAssetsLibrary *assetLibrary = [ViewController defaultAssetsLibrary];    [assetLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop)    {    [group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {      if(result)      {        [self evaluateGroup:group];      }    }];    } failureBlock:^(NSError *error) {        NSLog(@"Error loading images %@", error);    }];}- (void)evaluateGroup:(ALAssetsGroup *)group{    [group enumerateAssetsUsingBlock:^(ALAsset *result,                                       NSUInteger index,                                       BOOL *stop) {        NSLog(@"Photo date: %@", [result valueForProperty:ALAssetPropertyDate]);    }];}+ (ALAssetsLibrary *)defaultAssetsLibrary{    static dispatch_once_t pred = 0;    static ALAssetsLibrary *library = nil;    dispatch_once(&pred, ^{        library = [[ALAssetsLibrary alloc] init];    });    return library;}

Output Log:

Photo date: 2013-05-06 15:57:21 +0000 //non burst image.Photo date: 2013-05-06 15:57:41 +0000 //non burst image.Photo date: 2013-12-20 21:10:40 +0000 //burst image.Photo date: 2013-12-20 21:10:41 +0000 //burst image.Photo date: 2013-12-20 21:10:41 +0000 //burst image.Photo date: 2013-12-20 21:10:41 +0000 //burst image.Photo date: 2013-12-20 21:10:41 +0000 //burst image.Photo date: 2013-12-20 21:10:42 +0000 //burst image.Photo date: 2013-12-20 21:10:42 +0000 //burst image.Photo date: 2013-12-20 21:10:42 +0000 //burst image.Photo date: 2013-12-20 21:10:43 +0000 //burst image.Photo date: 2013-12-20 21:10:43 +0000 //burst image.Photo date: 2013-12-20 21:10:43 +0000 //burst image.Photo date: 2013-12-20 21:10:44 +0000 //burst image.Photo date: 2013-12-20 21:10:44 +0000 //burst image.Photo date: 2013-12-20 21:10:44 +0000 //burst image.Photo date: 2013-12-20 21:10:44 +0000 //burst image.Photo date: 2013-12-20 21:10:45 +0000 //burst image.Photo date: 2013-12-20 21:10:45 +0000 //burst image.Photo date: 2013-12-20 21:10:45 +0000 //burst image.Photo date: 2013-12-20 21:10:45 +0000 //burst image.Photo date: 2013-12-20 21:10:46 +0000 //burst image.

Note:

If the Burst Mode photo capture camera is a part of your application,then store the ALAsset URL's when saving the captured photos to the photo gallery.You can retrieve this photo back using the saved ALAsset URL's via ALAsset library.