我在我的应用程序中使用UIImagePickerControllerSourceTypeCamera,但想要将摄像机视图添加到子视图中。不是模态视图。
现在我正在使用
UIImagePickerController * picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.delegate = self;
[self presentModalViewController:picker animated:YES];
我想像这样使用它,但似乎不起作用..
UIImagePickerController * picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.delegate = self;
[picker.view setFrame:CGRectMake(300, 40, 300, 200)];
[self.view addSubview:picker.view];
我知道UIImagePickerControllerSourceTypeCamera只能用作模态视图。 例如Hipstamatic如何使用它?
答案 0 :(得分:10)
使用AVCaptureSession framework可以在iOS 4+中实现。它比使用UIImagePickerController复杂得多,但您可以完全控制输入和输出。将摄像机视图作为子视图的关键是以下代码。假设您有一个名为previewView的子视图,您想要显示摄像机视图:
AVCaptureSession *session = [[AVCaptureSession alloc] init];
AVCaptureVideoPreviewLayer *previewLayer = [AVCaptureVideoPreviewLayer layerWithSession:session];
previewLayer.frame = self.previewView.bounds;
[self.previewView.layer addSublayer:previewLayer];
要为AVCaptureSession对象提供正确的输入和输出设备以及实际拍摄照片,还需要做更多的设置工作。这可以在网络上的文档和示例中找到。
答案 1 :(得分:0)
你没错,唯一支持的显示UIImagePickerController的方法似乎是presentModalViewController:animated:
或UIPopoverController。
我对Hipstamatic不太熟悉,但很有可能使用AVFoundation,特别是AVCaptureVideoPreviewLayer。
答案 2 :(得分:0)
访问link,了解如何完成任务。在developer.apple.com资源中查找IOS程序的AVCam Demo。你一定会知道它是如何工作的。您应该是APPLE的注册开发人员,这很容易。
希望它有所帮助。