簡體   English   中英

在iPhone相機上覆蓋

[英]Overlay on iPhone camera

我要讓我的iPhone app.I的攝像頭覆蓋遵循教程

但是它教如何捕獲圖像,我需要在錄制視頻時實現它。

在本教程中,它只是

 - (void)takePicture
   {
    [picker takePicture];
   }

但是我無法在錄制視頻時實現它,如果可以,請幫我舉個例子

現在沒有覆蓋層,我正在使用此編碼來錄制視頻[我希望通過以上教程來實現]

 -(void)ViewDidLoad
    {

     [[NSNotificationCenter defaultCenter] addObserver:self   selector:@selector(onUploadVideoProgress:) name:@"UPLOADPROGRESS"  object:nil];

       self.mediaTypes=[NSArray arrayWithObjects:(NSString *) kUTTypeMovie,nil];


        if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
    {
        videoRecorder = [[UIImagePickerController alloc] init];
        videoRecorder.sourceType = UIImagePickerControllerSourceTypeCamera;
        videoRecorder.delegate = self;
         NSArray *mediaTypes1 = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
        NSArray *videoMediaTypesOnly = [mediaTypes1 filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(SELF contains %@)", @"movie"]];

         if ([videoMediaTypesOnly count] == 0)       
        {
            UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Sorry but your device does not support video recording"
                                                                     delegate:nil
                                                            cancelButtonTitle:@"OK"


                                      destructiveButtonTitle:nil
                                                            otherButtonTitles:nil];
            [actionSheet showInView:[[self view] window]];
          }
         else
         {
             if ([UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear])

            videoRecorder.cameraDevice = UIImagePickerControllerCameraDeviceRear;
            videoRecorder.mediaTypes = videoMediaTypesOnly;
            videoRecorder.videoQuality = UIImagePickerControllerQualityType640x480;
            videoRecorder.videoMaximumDuration = 30.0f;
            appDelegate.videoOrientation = @"portrait";



            [self presentModalViewController:videoRecorder animated:YES];
           }


          }
          else
          {
        UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Sorry but your   device does not support video recording"
                                                                 delegate:nil
                                                        cancelButtonTitle:@"OK"
                                                   destructiveButtonTitle:nil
                                                        otherButtonTitles:nil];
                [actionSheet showInView:[[self view] window]];
                }

             }


          }

           - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
           {
          self.videoURL=[[info objectForKey:UIImagePickerControllerMediaURL] path];
          self.videoData=[NSData dataWithContentsOfURL:[info objectForKey:UIImagePickerControllerMediaURL]];


           [self dismissModalViewControllerAnimated:YES];

       NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
     if ([mediaType compare:(NSString*)kUTTypeMovie] == NSOrderedSame) {
        NSURL *mediaUrl = [info objectForKey:UIImagePickerControllerMediaURL];
        MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:mediaUrl];
        moviePlayer.shouldAutoplay=NO;

        UIImage *thumbnail = [moviePlayer thumbnailImageAtTime:0.0 timeOption:MPMovieTimeOptionNearestKeyFrame];

        appDelegate.selectedVideo=[NSDictionary dictionaryWithObjectsAndKeys:
                                   self.videoURL,@"videourl",
                                   self.videoData,@"videodata",
                                   thumbnail,@"thumbdata",
                                   nil ];
           }

         AddOrEditVideoDetails *controller = [[AddOrEditVideoDetails alloc]initWithNibName:@"AddOrEditVideoView"bundle:nil];
    [[self navigationController] pushViewController:controller animated:YES];

        }

UIImagePickerController已經具有用於錄制視頻的API。 你可以打電話

– startVideoCapture
– stopVideoCapture

錄制視頻。 檢查API

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM