2013-02-20 62 views
9

मैं अपने ऐप के लिए प्रासंगिक कस्टम मेटाडेटा के साथ वीडियो सहेजने की कोशिश कर रहा हूं और जब उपयोगकर्ता उस वीडियो को लाइब्रेरी से चुनता है तो इसे पुनर्प्राप्त करने का प्रयास कर रहा हूं। मुझे यकीन नहीं है कि अगर मैं मेटाडेटा पुनर्प्राप्त करने का प्रयास करता हूं तो मैं मेटा डेटा को सही तरीके से सहेज रहा हूं क्योंकि मैं कुछ भी देखने में सक्षम नहीं हूं। मुझे यह भी यकीन नहीं है कि क्या मैं मेटा डेटा को सही तरीके से पुनर्प्राप्त कर रहा हूं। मैं आईओएस के लिए नया हूं, किसी भी मदद की सराहना की है। मैंने कई धागे और डेवलपर लाइब्रेरी की खोज की है लेकिन यह काम करने के लिए नहीं मिल सका।आईओएस प्रोग्रामिंग में वीडियो फ़ाइल में कस्टम मेटा डेटा कैसे जोड़ें और पुनर्प्राप्त करें?

मैं रिकॉर्डिंग में मेटाडेटा को सहेजने की कोशिश कर रहा हूं DidFinishToOutputFileURL प्रतिनिधि समारोह। पुस्तकालय में वीडियो सहेजा जा रहा है।

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 फ़ाइल प्रकार का समर्थन करें? एमपी 4 नहीं – crossle

उत्तर

0

में कुछ भी देखने की आपकी त्रुटियों की जाँच में सक्षम नहीं। आप निर्यात कर रहे हैं कि फ़ाइल पहले से मौजूद है, इसलिए यह अपने आप में निर्यात कर रहा है जो काम नहीं करेगा। बस एक अलग स्थान पर निर्यात करें