2011-11-29 11 views
8

मैं कैसे समझ मेरे सीखने यात्रा में एक कैमरा ऐप्लिकेशन बनाने के लिए :-)एक वीडियो है कि मैं अपने अनुप्रयोग में रिकॉर्ड

केवल एक चीज मैं एक वीडियो है कि मैं दर्ज की गई है बचत है के साथ फंस कर रहा हूँ में सफल रहा बचाओ। मैं एक फोटो सहेजने में सक्षम हूं, लेकिन यह वीडियो के लिए काम नहीं करता है।

तो मुझे लगता है कि मुझे इसे आईब्राड ऐप्स की मदद से लगभग मिला है।

इस कोड को मिला:

-(void)imagePickerController:(UIImagePickerController *)picker 
    didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType]; 

[self dismissModalViewControllerAnimated:YES]; 

if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) { 
    UIImage *image = [info 
         objectForKey:UIImagePickerControllerOriginalImage]; 

    imageView.image = image; 

    if (newMedia) 
     UIImageWriteToSavedPhotosAlbum(image, 
             self, 
             @selector(image:finishedSavingWithError:contextInfo:), 
             nil); 
} 
else{ 

    if ([mediaType isEqualToString:(NSString *)kUTTypeMovie]) { 
     UIImage *movie = [info 
          objectForKey:UIImagePickerControllerQualityTypeHigh]; 

     videoRecorder2.image = movie; 

      if (newMedia) 
       UISaveVideoAtPathToSavedPhotosAlbum(movie, 
               self, 
               @selector(movie:finishedSavingWithError:contextInfo:), 
               nil); 
}}} 

मैं एक अगर बयान है, क्योंकि एप्लिकेशन दोनों वीडियो और अभी भी छवियों ले सकते हैं।

पहले भाग अभी भी के लिए है - जो काम करता है और फिर दूसरे भाग मैं अभी भी कर रहा हूँ :-)

उत्तर

18

साथ टूटू-इंग इस प्रयास करें:

UISaveVideoAtPathToSavedPhotosAlbum(moviepath,nil,nil,nil); 

संपादित करें: इस प्रयास करें और अपने कोड को संशोधित इस विधि के लिए:

// For responding to the user tapping Cancel. 
- (void) imagePickerControllerDidCancel: (UIImagePickerController *) picker { 

    [[picker parentViewController] dismissModalViewControllerAnimated: YES]; 
    [picker release]; 
} 

// For responding to the user accepting a newly-captured picture or movie 
- (void) imagePickerController: (UIImagePickerController *) picker 
      didFinishPickingMediaWithInfo: (NSDictionary *) info { 

    NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType]; 
    UIImage *originalImage, *editedImage, *imageToSave; 

    // Handle a still image capture 
    if (CFStringCompare ((CFStringRef) mediaType, kUTTypeImage, 0) 
      == kCFCompareEqualTo) { 

     editedImage = (UIImage *) [info objectForKey: 
        UIImagePickerControllerEditedImage]; 
     originalImage = (UIImage *) [info objectForKey: 
        UIImagePickerControllerOriginalImage]; 

     if (editedImage) { 
      imageToSave = editedImage; 
     } else { 
      imageToSave = originalImage; 
     } 

    // Save the new image (original or edited) to the Camera Roll 
     UIImageWriteToSavedPhotosAlbum (imageToSave, nil, nil , nil); 
    } 

    // Handle a movie capture 
    if (CFStringCompare ((CFStringRef) mediaType, kUTTypeMovie, 0) 
      == kCFCompareEqualTo) { 

     NSString *moviePath = [[info objectForKey: 
        UIImagePickerControllerMediaURL] path]; 

     if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum (moviePath)) { 
      UISaveVideoAtPathToSavedPhotosAlbum (
        moviePath, nil, nil, nil); 
     } 
    } 

    [[picker parentViewController] dismissModalViewControllerAnimated: YES]; 
    [picker release]; 
} 
+0

मैं की तरह सही तरीके से लगता है - मैं दिखाने के लिए मैं क्या कर रहा हूँ कुछ कोड को शामिल किया है - चियर्स –

+0

चेक अगर फिल्म नहीं के बराबर है या यदि newMedia नहीं के बराबर है। –

+0

क्षमा करें क्या कोई प्रश्न या उत्तर है? नया मीडिया एक बूलियन है और इसलिए मैं सोच रहा हूं कि यह शून्य होना चाहिए - ताकि यह क्लिप को सही से बचा सके? शायद मैं यहां गलत निशान पर हूं। –