2013-02-11 24 views
9

या तो UIImagePicker नियंत्रक या AVFoundation का उपयोग करके मुझे उस वीडियो को कैप्चर या रिकॉर्ड करने की आवश्यकता है जहां न केवल कैमरा आउटपुट बल्कि ओवरले सबव्यू दर्ज किए जाने चाहिए। मैंने कैमरे के पूर्वावलोकन में ओवरले छवि जोड़ने के लिए बहुत सारे उदाहरण देखे हैं, लेकिन मैं जो चाहता हूं वह न केवल ओवरले छवि या टेक्स्ट पूर्वावलोकन है बल्कि अंतिम वीडियो आउटपुट में ओवरले की वास्तविक रिकॉर्डिंग है।ओवरले टेक्स्ट और छवि के साथ रिकॉर्ड वीडियो

// ग्राफिकल परत जोड़ने

CALayer *theDonut = [CALayer layer]; 
theDonut.bounds = CGRectMake(50,50, 150, 150); 
theDonut.cornerRadius = 50/2; 
theDonut.backgroundColor = [UIColor clearColor].CGColor; 
theDonut.borderWidth = 50/5; 
theDonut.borderColor = [UIColor orangeColor].CGColor; 

// वीडियो पूर्वावलोकन लेयर

videoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:capSession]; 
videoPreviewLayer.frame = videoPreview.bounds; 
videoPreviewLayer.backgroundColor = [UIColor blackColor].CGColor; 
videoPreviewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill; 

videoPreview.layer.masksToBounds = YES; 
[videoPreview.layer addSublayer:videoPreviewLayer]; 
[videoPreview.layer addSublayer:theDonut]; 

// जोड़ने पाठ परत सेट करें

UIFont *font = [UIFont fontWithName:@"MarkerFelt-Thin" size:40.0]; 
    CGSize maxSize = CGSizeMake(480, 10000.0); 
    CGSize labelSize = [@"Test Text" sizeWithFont:font constrainedToSize:maxSize lineBreakMode:NSLineBreakByWordWrapping]; 
    CGRect labelFrame = CGRectMake(50.0, 10.0, labelSize.width, labelSize.height); 
    UILabel *label = [[UILabel alloc] initWithFrame:labelFrame]; 
    label.font = font; 
    label.text = @"Test Text"; 
    label.numberOfLines = 0; 
    [videoPreview addSubview:label]; 

// भी बटन ओवरले जोड़ने !! !

UIButton *snap = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [snap setImage:[UIImage imageNamed:@"takePic"] 
      forState:UIControlStateNormal]; 
    [snap addTarget:self 
      action:@selector(pickerCameraSnap:) 
    forControlEvents:UIControlEventTouchUpInside]; 
    snap.frame = CGRectMake(74, 370, 178, 37); 

    [videoPreview addSubview:snap]; 

    // 8) Commit session configuration 
    // 9) Start running capture session 
    // ======================================== 
    [capSession commitConfiguration]; 
    [capSession startRunning]; 


    //Make sure video is not recording 
    [[videoDataOutput connectionWithMediaType:AVMediaTypeVideo] setEnabled:NO]; 

यह उदाहरण इस नमूना कोड से संशोधित किया गया है - यह वीडियो पूर्वावलोकन के लिए पाठ और ड्राइंग जोड़ने है, लेकिन अंतिम आउटपुट फ़ाइल में उन लोगों के रिकॉर्ड नहीं करता है।

http://ioscoreframeworks.com/assets/code/DemoCapture.zip

+0

एक WWDC वीडियो जो ऐसा करने के तरीके के माध्यम से चला जाता है और वहाँ स्रोत कोड जुड़ा हुआ है नहीं है: आप सभी कोड यहाँ के पूरे डाउनलोड प्राप्त कर सकते हैं। मैं प्रस्तुति नाम अब याद नहीं कर सकता (AVFoundation ...) लेकिन यह खोजना आसान होना चाहिए। –

+0

@skinnyTOD: वास्तव में AVFoundation के बारे में बहुत सारे डब्ल्यूडब्ल्यूडीसी वीडियो से गुज़र चुके हैं लेकिन इस विशेष आवश्यकता के लिए सरल लेकिन सटीक कोड नहीं मिला है इसलिए स्टैक ओवर फ्लो में सहायता ले रही है। वैसे भी मैं डब्ल्यूडब्ल्यूडीसी वीडियो के माध्यम से सर्फिंग कर रहा हूं जैसे ही मुझे एक मिलता है समाधान पोस्ट करेगा। –

+0

मिले एक कोड वीडियो AVSimpleEditor लिए वॉटरमार्क जोड़ने करता है कि एक साधारण AVFoundation आधारित फिल्म संपादन आवेदन जो अभ्यास ... ... दर्शाता है कि कैसे वे सरल वीडियो संपादन कार्य के लिए इस्तेमाल किया जा सकता है। यह भी दर्शाता है कि वे प्लेबैक (AVPlayerItem) और निर्यात (AVAssetExportSession) के साथ कैसे बातचीत करते हैं। एप्लिकेशन ट्रिम करता है, घूमता है, फसल, संगीत जोड़ता है, वॉटरमार्क और निर्यात जोड़ता है। यह नमूना एआरसी-सक्षम है। http://developer.apple.com/library/ios/#samplecode/AVSimpleEditoriOS/Introduction/Intro.html#//apple_ref/doc/uid/DTS40012797-Intro-DontLinkElementID_2 –

उत्तर

0

आप AVEditdemo आवेदन जो WWDC 2010 नमूना कोड में शामिल है की कोशिश कर सकते हैं। दुर्भाग्यवश आपको इसे प्राप्त करने के लिए सभी डब्ल्यूडब्ल्यूडीसी 2010 नमूना कोड डाउनलोड करने की आवश्यकता है (232.6 एमबी)। http://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?code=y&source=x&bundleID=20645

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

  • कोई संबंधित समस्या नहीं^_^