我正在开发基本的相机应用程序。我已经制作了视频部分和照片部分,现在需要集成。我应该将它们都集成到同一个类/文件中吗?还是应该将它们分散到两个单独的VC(ViewController)中?
那将如何工作?
答案 0 :(得分:1)
最简单的方法(以及我的操作方式)是先构建摄像头功能,然后在两个单独的类中构建视频捕获功能。完成此操作后,您会发现许多必需的协议和功能将重叠。从这一点来看,这很简单,您要做的就是将视频类中的粘贴复制到照片中。照片中包含更多内容,因此您应该从那里开始。例如:setupDevice()
和setupInputOutput()
应该重叠。因此,结论是:是的,我建议集成到一个类中并设置2个扩展:一个用于AVFoundation Video协议,另一个用于Photo。
快速提示:设置photoOutput
和movieOutput
,此外capture session
和previewLayer
都应适用,因此仅成为每个。我还以Snapchat风格的方式构建了我的cam。
如果需要其他指导,请告诉我。
答案 1 :(得分:-1)
您可以将UIImagePickerController用于视频和图像。
lazy var picker: UIImagePickerController = {
let pickerView = UIImagePickerController()
pickerView.mediaTypes = [kUTTypeMovie as String, kUTTypeImage as String]
pickerView.sourceType = .camera
pickerView.videoQuality = .type640x480
return pickerView
}()
我已经完成以下工作: -录制视频并将其保存到相册。还将其发送到服务器。 -捕获照片并将其发送到服务器。
答案 2 :(得分:-1)
if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera) {
let img = UIImagePickerController()
img.delegate = self
img.sourceType = UIImagePickerControllerSourceType.camera;
img.mediaTypes = [kUTTypeImage as String]; //whatever u want type
img.allowsEditing = true
rootNavigationController?.present(img, animated: true, completion: nil)
}