【问题标题】:Find the size of photos and videos inside (Photo Library) iOS device using Photos Framework on iOS 8在 iOS 8 上使用 Photos Framework 查找 iOS 设备内部(照片库)的照片和视频的大小
【发布时间】:2016-03-10 05:11:23
【问题描述】:

在 iOS 7 之前,我们使用 Assets Library Framework 来获取 iOS 设备中照片和视频的总大小,请看这里: How to find total size for images and videos inside photo library in iOS

任何人都可以帮助我使用照片框架做同样的事情,因为资产库框架已被弃用。另外,如果以更快的方式有大量照片,我如何计算总尺寸。 你可以在这个应用程序中看到: MobiShield for iPhone 这里如果你去更多 > 磁盘你可以看到开发者正在计算 2 秒内的总照片大小和视频大小。我怎样才能做到这一点?在目标 - C。

【问题讨论】:

    标签: objective-c ios9 photos photosframework assetslibrary


    【解决方案1】:

    用户照片资产(我尚未使用,但这是 IOS 8 要求)或已弃用但仍可使用当前版本的 ALASSETS,这将为您提供文件信息。

    【讨论】:

      【解决方案2】:

      使用这些:

      - (NSUInteger)updateVideoCount
      {
          ALAuthorizationStatus status = [ALAssetsLibrary authorizationStatus];
          if (status==ALAuthorizationStatusDenied) {
              [self goToSettingsAlert];
          }
      videoCount = 0;
      totalVideoSize = 0;
      
      ALAssetsLibrary *assetLibrary = [[ALAssetsLibrary alloc] init];
      
      [assetLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
          [group setAssetsFilter:[ALAssetsFilter allVideos]];
          [group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop) {
              if (asset)
              {
                  NSString *type = [asset  valueForProperty:ALAssetPropertyType];
                  if ([type isEqualToString:ALAssetTypeVideo])
                  {
                      videoCount++;
      
                      ALAssetRepresentation *rep = [asset defaultRepresentation];
                      totalVideoSize += rep.size;
                  }
      
              }
              else
              {
      
              }
          }];
          if(group==nil)
          {
              [self loadTable];
              descTable.hidden = NO;
              [descTable reloadData];
          }
      } failureBlock:^(NSError *error) {
      }];
      
      return 0;
      

      }

      - (NSUInteger)updatePictureCount
      {
          photoCount = 0;
          totalPictureSize = 0;
      
          ALAssetsLibrary *assetLibrary = [[ALAssetsLibrary alloc] init];
      
          [assetLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
              [group setAssetsFilter:[ALAssetsFilter allPhotos]];
              [group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop) {
                  if (asset)
                  {
                      NSString *type = [asset  valueForProperty:ALAssetPropertyType];
                      if ([type isEqualToString:ALAssetTypePhoto])
                      {
                          photoCount++;
      
                          ALAssetRepresentation *rep = [asset defaultRepresentation];
                          totalPictureSize += rep.size;
                      }
      
                  }
      
                  else
                  {
      
                  }
              }];
              if(group==nil)
              {
      
                  [self loadTable];
                  descTable.hidden = NO;
                  [descTable reloadData];
              }
          } failureBlock:^(NSError *error) {
      
          }];
      
          return 0;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-19
        • 1970-01-01
        • 2014-02-02
        • 2023-04-03
        • 1970-01-01
        相关资源
        最近更新 更多