2013-02-20 14 views
9

私は自分のアプリケーションに関連したカスタムメタデータを使ってビデオを保存しようとしており、ユーザーがそのビデオをライブラリから選択したときに取得しようとしています。メタデータを取得しようとすると何も見ることができないため、メタデータを正しく保存しているかどうかはわかりません。また、メタデータを正しく取得しているかどうかもわかりません。私はiOSを初めて利用しています。何か助けていただければ幸いです。私は多くのスレッドと開発者のライブラリを検索しましたが、これを動作させることはできませんでした。iOSプログラミングでカスタムメタデータをビデオファイルに追加して取得する方法は?

メタデータをrecordingDidFinishToOutputFileURLデリゲート関数に保存しようとしています。ビデオはライブラリに保存されています。

NSMutableArray *metadata = [NSMutableArray array]; 
    AVMutableMetadataItem *mi = [AVMutableMetadataItem metadataItem]; 
    mi.key = AVMetadataCommonKeyTitle; 
    mi.keySpace = AVMetadataKeySpaceCommon; 
    mi.value = @"title"; 
    [metadata addObject:mi]; 

    NSLog(@"Output saving:%@",outputFileURL); 
    AVAsset *video = [AVAsset assetWithURL:outputFileURL]; 
    AVAssetExportSession *exportSession = [AVAssetExportSession  exportSessionWithAsset:video presetName:AVAssetExportPresetPassthrough]; 
    exportSession.shouldOptimizeForNetworkUse = YES; 
    exportSession.outputFileType = AVFileTypeMPEG4; 
    exportSession.metadata = metadata; 
    exportSession.outputURL = outputFileURL; 
    [exportSession exportAsynchronouslyWithCompletionHandler:^{ 
     NSLog(@"done processing video!"); 
     UISaveVideoAtPathToSavedPhotosAlbum(outputFileURL.path, self, @selector(video:didFinishSavingWithError: contextInfo:), nil); 
    }]; 

私は、メタデータをチェックするためにdidFinishPickingMediaWithInfoデリゲート機能でビデオを取得しようとしているが、あなたのエラーをチェックしcompletionhandler機能

 if ([mediaType isEqualToString:(NSString *)kUTTypeMovie]) { 
     video_selected = TRUE; 
     NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL]; 

     NSLog(@"video has %@", videoURL.path); 
     AVAsset *videoAsset = [AVAsset assetWithURL:videoURL]; 
     NSLog(@"Loading metadata..."); 
     NSArray *keys = [[NSArray alloc] initWithObjects:@"commonMetadata", nil]; 
     NSMutableArray *metadata = [[NSMutableArray alloc] init]; 
     [videoAsset loadValuesAsynchronouslyForKeys:keys completionHandler:^{ 

      [metadata removeAllObjects]; 
      for (NSString *format in [videoAsset availableMetadataFormats]) 
      { 
       [metadata addObjectsFromArray:[videoAsset metadataForFormat:format]]; 
       NSLog(@"Printing metadata-%@",metadata); 
      } 


     }]; 
+0

ファイルを通常のコンピュータに保存してそこのメタデータを見ることはできますか? – Liron

+0

なぜ写真ライブラリに新しいフォルダを作成するのではなく、メタデータを追加しようとしていますか?アプリに関連する動画や写真を保存したり取得したりできますか? – iremk

+0

movファイルタイプのみサポートしていますか? mp4ではない – crossle

答えて

0

には何も見ることができないのです。ファイルが既に存在する場所にエクスポートしているため、エクスポートされていても機能しません。別の場所にエクスポートするだけです

関連する問題