objective-c - UIImagePickerController 不会录制视频

标签 objective-c ios cocoa-touch ios5 uiimagepickercontroller

我想用 UIImagePickerController 录制视频。我的问题是方法 [imagePickerController startVideoCapture]; 总是返回 0。我正在使用运行 iOS 5.1 的 iPhone 4S 测试应用程序。有人可以帮我解决这个问题吗:

- (IBAction)playButtonPushed:(id)sender
{
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) 
    {
        UIView *videoView = self.videoViewController.view;
        UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] >init];
        imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
        imagePickerController.mediaTypes = [[NSArray alloc] initWithObjects: (NSString >*)kUTTypeMovie, nil];
        imagePickerController.showsCameraControls = NO;
        imagePickerController.toolbarHidden = NO;
        imagePickerController.wantsFullScreenLayout = YES;
        imagePickerController.allowsEditing = YES;
        imagePickerController.videoQuality = UIImagePickerControllerQualityTypeMedium;
        imagePickerController.videoMaximumDuration = 30;
        [imagePickerController startVideoCapture];
        imagePickerController.cameraViewTransform = > CGAffineTransformScale(self.imagePickerViewController.cameraViewTransform, CAMERA_TRANSFORM,  CAMERA_TRANSFORM);
        imagePickerController.delegate = self;

        [self.imagePickerViewController setCameraOverlayView:videoView];
        NSLog(@"%s videoCapture: %d", __PRETTY_FUNCTION__, [imagePickerController > startVideoCapture]
              );
        [self presentModalViewController:imagePickerViewController animated:YES];
    }
}


 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    NSLog(@"didFinishPickingMediaWithInfo");
    NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL];
    NSData *videoData = [NSData dataWithContentsOfURL:videoURL];
}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
    NSLog(@"Cancel");
}

最佳答案

我遇到了同样的问题,Apple 的文档没有帮助。那是因为他们没有提到如果您没有像这样将捕获模式设置为 .video,startVideoCapture() 会返回 false:

picker.cameraCaptureMode = .video

这对我有用,我现在可以捕捉视频了。

关于objective-c - UIImagePickerController 不会录制视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10591498/

相关文章:

ios - 无法更改 UITableViewCell subview 的位置

objective-c - 使有关释放 CGMutablePathRef 对象的编译器警告静音

ios - 在 Collection View 单元格内使用 XYPieChart - 图表不显示

objective-c - 无法加载 "TweetSheetLocationArrow.png"图片... Twitter/iOS 社交框架

objective-c - 在 Objective-C 中的循环外声明变量是否有任何优化效果?

javascript - Cordova window.open _self 不工作但 _blank 工作

iphone - 警告 : TSD slot 10 retrieved but the thread data has already been torn down

iphone - NSString到NSArray

ios - 关闭另一个 View 后,UITableView 滚动内容大小不正确

objective-c - 如何释放一个对象是调用委托(delegate)函数来释放它自己