我只想要一个屏幕:
使用UIImagePickerController
时,它使用两个屏幕。
但我不想要这个:
这可能吗?
答案 0 :(得分:5)
@Fahri
是正确AVFoundation
更灵活但如果你想坚持UIImagePickerController
你可以做的是通过将showsCameraControls
属性设置为{来关闭相机控件{1}},然后展示您自己的视图和自定义方法。
将您的代码更改为:
<强> takeVideo 强>
NO
<强> shootVideo 强>
- (IBAction)takeVideo:(UIButton *)sender {
UIToolbar *toolBar=[[UIToolbar alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height-54, self.view.frame.size.width, 55)];
toolBar.barStyle = UIBarStyleBlackOpaque;
NSArray *items=[NSArray arrayWithObjects:
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelVideo)],
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil],
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(shootVideo)],
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil],
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil],
nil];
[toolBar setItems:items];
// create the overlay view
UIView *overlayView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height-44)];
overlayView.opaque=NO;
overlayView.backgroundColor=[UIColor clearColor];
// parent view for our overlay
UIView *cameraView=[[UIView alloc] initWithFrame:self.view.bounds];
[cameraView addSubview:overlayView];
[cameraView addSubview:toolBar];
picker = [[UIImagePickerController alloc] init];
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera] == NO){
NSLog(@"Camera not available");
return;
}
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil];
picker.delegate = self;
// hide the camera controls
picker.showsCameraControls=NO;
[picker setCameraOverlayView:cameraView];
[self presentViewController:picker animated:YES completion:nil];
}
<强> cancelVideo 强>
-(void) shootVideo {
[picker startVideoCapture];
}
<强>截图强>
答案 1 :(得分:1)
如果您在发布问题之前已经检查了UIImagePickerController
的文档,那么您可以使用AVFoundation
库来构建您自己的相机控制器,以及您想要的任何控件和屏幕。祝你好运!