0

すべての動画を一覧表示したい。写真ライブラリの動画だけでなく、動画アプリの動画、映画、テレビ番組、ミュージック ビデオなどもアプリに追加します。

ALAsset を次のように使用した場合:

ALAsset *asset = [videoLibrary objectAtIndex:indexPath.row];
videoURL = [[asset defaultRepresentation] url];
[videoURLs addObject:videoURL];
[cell.textLabel setText:[NSString stringWithFormat:@"Video %d", indexPath.row+1]];
[cell.imageView setImage:[UIImage imageWithCGImage:[asset thumbnail]]];

(UITableViewCell *)tableView:cellForRowAtIndexPath: メソッドでは、フォト ライブラリのビデオのみが表示されます。すべてのタイプを取得する方法はありますか?

前もって感謝します

4

2 に答える 2

0

IOS デバイスですべてのビデオを取得する必要があると思います。 この投稿で同じコードを見つけることができます。

于 2013-04-23T16:57:40.160 に答える
0

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    NSMutableArray *assetGroups = [[NSMutableArray alloc] init];
    NSMutableArray *assetURLDictionaries = [[NSMutableArray alloc] init];

    // Process assets
    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]];
                NSURL *url = result.defaultRepresentation.url;
                [assetLibrary assetForURL:url
                              resultBlock:^(ALAsset *asset) {
                                  if (asset) {
                                      @synchronized(assets) {
                                          [systemVideoArray addObject:asset];
                                          [self.mTableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];
                                      }
                                  }
                              }
                             failureBlock:^(NSError *error){
                                 NSLog(@"operation was not successfull!");
                             }];
            }
        }
    };
于 2014-04-28T10:22:01.947 に答える