2011-06-08 16 views
5

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

उत्तर

16

केवल आईफोन 3 जीएस और ऊपर वीडियो समर्थन रिकॉर्डिंग। इसलिए आपको पहले जांच करनी चाहिए कि रिकॉर्डिंग समर्थित है या फिर निम्नलिखित कोड का उपयोग करके गुणों के लिए वांछित मूल्यों के साथ कैमरा शुरू करें।
इस कोड को चलाने के लिए आपके पास "MobileCoreServices/MobileCoreServices.h" होगा।

  if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {    
       UIImagePickerController *videoRecorder = [[UIImagePickerController alloc]init];   
       NSArray *sourceTypes = [UIImagePickerController availableMediaTypesForSourceType:videoRecorder.sourceType]; 
       NSLog(@"Available types for source as camera = %@", sourceTypes); 
       if (![sourceTypes containsObject:(NSString*)kUTTypeMovie]) { 
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil 
                    message:@"Device Not Supported for video Recording."                  delegate:self 
                  cancelButtonTitle:@"Yes" 
                  otherButtonTitles:@"No",nil]; 
        [alert show]; 
        [alert release]; 
        return; 
       } 
       videoRecorder.sourceType = UIImagePickerControllerSourceTypeCamera; 
       videoRecorder.mediaTypes = [NSArray arrayWithObject:(NSString*)kUTTypeMovie];   
       videoRecorder.videoQuality = UIImagePickerControllerQualityTypeLow; 
       videoRecorder.videoMaximumDuration = 120; 
       videoRecorder.delegate = self; 
       self.recorder_ = videoRecorder;     
       [videoRecorder release]; 
       [self presentModalViewController:self.recorder_ animated:YES];     
      } 

तो फिर तुम एसक्यूएल में कब्जा video.Storing वीडियो पथ को बचाने के लिए निम्नलिखित प्रतिनिधि विधि को लागू करना चाहिए/CoreData बजाय इसे में पूरे वीडियो फ़ाइल भंडारण के आदर्श होगा।

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
NSString *type = [info objectForKey:UIImagePickerControllerMediaType]; 
if ([type isEqualToString:(NSString *)kUTTypeVideo] || 
    [type isEqualToString:(NSString *)kUTTypeMovie]) { // movie != video 
    NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL]; 
    NSData *videoData = [NSData dataWithContentsOfURL:videoUrl]; 
    NSString *videoStoragePath;//Set your video storage path to this variable 
    [videoData writeToFile:videoStoragePath atomically:YES]; 
    //You can store the path of the saved video file in sqlite/coredata here. 
} 
} 

उम्मीद है कि इससे मदद मिलती है।

+0

इसके लिए धन्यवाद ... इसके लिए आपको किस ढांचे की आवश्यकता है? – TommyG

3

आप SQL डेटा में कच्चे डेटा के रूप में वीडियो डेटा स्टोर करने में सक्षम होंगे लेकिन मैं इसके खिलाफ दृढ़ता से अनुशंसा करता हूं। प्रदर्शन भयानक होगा। वीडियो को दस्तावेज़ निर्देशिका में सहेजने के लिए बेहतर और उसके बाद डीबी में एक पथ।

आप SQLite साथ काम कर रहे हैं तो आप CoreData पर गौर करना चाहिए, यह प्रबंध हठ एक बहुत आसान बना देता है ... मेरी कोर डेटा ट्यूटोरियल के लिए स्रोत कोड डाउनलोड के रूप में यह एक अच्छा भंडारण सेवा आवरण होता है ... tutorial here

संबंधित मुद्दे