Coc*_*tch 5 cocoa-touch objective-c uiimagepickercontroller ios ios5
我想用 录制视频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");
}
Run Code Online (Sandbox Code Playgroud)
如果我没记错的话,“startVideoCapture”方法是一个布尔值
\n\n直接取自苹果文档:
\n\n开始视频捕捉
\n\n使用 UIImagePickerControllerCameraDevice 属性指定的相机开始视频捕获。\n- (BOOL)startVideoCapture\n返回值
\n\nYES 表示成功,NO 表示失败。此方法可能会因各种原因返回 NO 值,其中包括:
\n\nMovie capture is already in progress\n\nThe device does not support movie capture\n\nThe device is out of disk space\n
Run Code Online (Sandbox Code Playgroud)\n\n讨论
\n\n将此方法与自定义覆盖视图结合使用来启动电影的编程捕获。您可以在不离开界面的情况下拍摄多部影片,但要做到这一点需要您隐藏默认的图像选择器控件。
\n\n在拍摄影片时调用此方法没有任何效果。您必须调用 stopVideoCapture 方法,然后等待关联的委托对象收到 imagePickerController:didFinishPickingMediaWithInfo: 消息,然后才能捕获另一部电影。
\n\n当图像选择器的源类型设置为 UIImagePickerControllerSourceTypeCamera 以外的值时调用此方法会导致引发 NSInvalidArgumentException 异常。
\n\n如果您需要其他选项或对影片捕获进行更多控制,请使用 AV Foundation 框架中的影片捕获方法。请参阅 AV Foundation 框架参考。\n可用性
\n\nAvailable in iOS 4.0 and later.\n
Run Code Online (Sandbox Code Playgroud)\n\n在\nUIImagePickerController.h\nstopVideoCapture 中声明
\n\n停止视频捕获。\n- (void)stopVideoCapture\n讨论
\n\n调用该方法停止视频采集后,系统会调用图片选择器 delegate\xe2\x80\x99s imagePickerController:didFinishPickingMediaWithInfo: 方法。\n可用性
\n\nAvailable in iOS 4.0 and later.\n
Run Code Online (Sandbox Code Playgroud)\n\n在\nUIImagePickerController.h 中声明
\n 归档时间: |
|
查看次数: |
2831 次 |
最近记录: |