[英]Disable the retake, play and use video screen UIImagePickerController
I am just wanting one screeen: 我只是想要一个人:
When using the
UIImagePickerController
it uses two screens. 使用
UIImagePickerController
它使用两个屏幕。
But I don't want this one: 但我不想要这个:
Is this possible? 这可能吗?
@Fahri
is right AVFoundation
is more flexible but if you want to stick with UIImagePickerController
what you could do is turn off the camera control by setting showsCameraControls
property to NO
, then present your own view and custom methods. @Fahri
是对的AVFoundation
更灵活但是如果你想坚持使用UIImagePickerController
你可以做的是通过将showsCameraControls
属性设置为NO
来关闭相机控件,然后呈现你自己的视图和自定义方法。
Change your code to: 将您的代码更改为:
takeVideo takeVideo
- (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];
}
shootVideo shootVideo
-(void) shootVideo {
[picker startVideoCapture];
}
cancelVideo cancelVideo
- (IBAction)cancelVideo {
[self dismissViewControllerAnimated:YES completion:nil];
}
screenshot 截图
If you have already checked the documentation of UIImagePickerController
before posting your question, then you can use AVFoundation
library to build your own camera controller, with any controls and screens you want. 如果您在发布问题之前已经检查过
UIImagePickerController
的文档,那么您可以使用AVFoundation
库来构建您自己的相机控制器,以及您想要的任何控件和屏幕。 Good Luck! 祝好运!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.