DBCamera icon indicating copy to clipboard operation
DBCamera copied to clipboard

Init camera long time

Open donaldyang opened this issue 8 years ago • 5 comments

"DBLibraryManager.m" Line-117 change like this will init camera faster

if(blockGetAllAssets){ [items addObject:[[result defaultRepresentation] url]]; }

PS:My photo library saved more than 2000+ photos.It init camera take a long time.

donaldyang avatar Oct 07 '16 16:10 donaldyang

I'm facing the same problem on iOS 10. It takes more than 12 seconds to load the photo library. Changing the line you suggested doesn't solve the problem.

thelordy avatar Oct 12 '16 12:10 thelordy

@thelordy I'm testing on iOS10 .The code i changed make the camera init faster when i push the DBCameraContainerViewController.But it also use a long time when i touch right bottom 'show libaray button' to open the photo library show in GridView.

donaldyang avatar Oct 13 '16 02:10 donaldyang

Same problem for me.

thierrybucco avatar Oct 21 '16 18:10 thierrybucco

I ended up using ReactiveObjc and the new Photos framework to achieve a better performance.

The new Photos framework gives me the photos ordered by date latest first, and the ReactiveObjC gives me the ability to add the photos in batches, and not load all of them to only then show to the user.

I've also added video browsing through DBCamera.

I'll clean up the code, and I should submit it soon.

jpros avatar Nov 10 '16 03:11 jpros

Ok guys, just fixed the issue. You have to make some changes on this files:

"DBLibraryManager.m":

  • On Line 86 ( before 'if ( group )') add: ALAssetsFilter *onlyPhotosFilter = [ALAssetsFilter allPhotos]; [group setAssetsFilter:onlyPhotosFilter];

  • Replace Lines from 113 to 119 with: if ( result ) { [items addObject:result]; assetResult = result; }

"DBCameraCollectionViewController.m":

  • Replace Lines from 74 to 78 with: ALAsset *asset = _items[indexPath.item]; CGImageRef thumbnailImageRef = [asset thumbnail]; UIImage *thumbnail = [UIImage imageWithCGImage:thumbnailImageRef]; item.itemImage.image = thumbnail;

  • Replace Line 93 with: [_collectionControllerDelegate collectionView:collectionView itemURL:(NSURL *)[[asset defaultRepresentation] url]];

Hope to help someone else because this library is amazing!

thelordy avatar Dec 10 '16 14:12 thelordy