如何使用 UIImagePickerController 设置视频尺寸?
How to set video dimensions with UIImagePickerController?
当我使用 UIImagePickerController 时,如何设置我想要录制的视频尺寸?
我正在开发一个使用 UIImagePickerController 的应用程序,控件顶部有一个自定义视图。当我录制时,我发现视频的比例看起来 4:3,而不是我期望的 16:4。
当我查看 Apple 文档时,它提供了一个 example 形式:
session.sessionPreset = AVCaptureSessionPreset1280x720;
问题是,当我使用 UIImagePickerController 时,我似乎看不到如何让会话能够设置此值。我的基于 Swift 2 的代码如下所示(略有编辑):
cameraController = UIImagePickerController()
if (cameraController != nil) {
cameraController!.mediaTypes = [kUTTypeMovie as String]
cameraController!.sourceType = .Camera
cameraController!.cameraCaptureMode = .Video
cameraController!.allowsEditing = false
cameraController!.delegate = self
cameraController!.showsCameraControls = false
self.recorderOverlayView = (NSBundle.mainBundle().loadNibNamed("VideoRecorderOverlayView", owner: self, options: nil)[0] as! VideoRecorderOverlayView)
if (self.recorderOverlayView != nil) {
self.recorderOverlayView!.frame = self.view!.frame
recorderOverlayView?.delegate = self;
locationLabel = recorderOverlayView?.viewWithTag(1) as? UILabel
} else {
print("view not loaded")
}
}
虽然 UIImagePickerController 似乎不提供对会话的访问,但它确实具有 videoQuality 属性,这似乎是设置此值的正确位置。就我而言:
cameraController!.videoQuality = .TypeIFrame1280x720
当我使用 UIImagePickerController 时,如何设置我想要录制的视频尺寸?
我正在开发一个使用 UIImagePickerController 的应用程序,控件顶部有一个自定义视图。当我录制时,我发现视频的比例看起来 4:3,而不是我期望的 16:4。
当我查看 Apple 文档时,它提供了一个 example 形式:
session.sessionPreset = AVCaptureSessionPreset1280x720;
问题是,当我使用 UIImagePickerController 时,我似乎看不到如何让会话能够设置此值。我的基于 Swift 2 的代码如下所示(略有编辑):
cameraController = UIImagePickerController()
if (cameraController != nil) {
cameraController!.mediaTypes = [kUTTypeMovie as String]
cameraController!.sourceType = .Camera
cameraController!.cameraCaptureMode = .Video
cameraController!.allowsEditing = false
cameraController!.delegate = self
cameraController!.showsCameraControls = false
self.recorderOverlayView = (NSBundle.mainBundle().loadNibNamed("VideoRecorderOverlayView", owner: self, options: nil)[0] as! VideoRecorderOverlayView)
if (self.recorderOverlayView != nil) {
self.recorderOverlayView!.frame = self.view!.frame
recorderOverlayView?.delegate = self;
locationLabel = recorderOverlayView?.viewWithTag(1) as? UILabel
} else {
print("view not loaded")
}
}
虽然 UIImagePickerController 似乎不提供对会话的访问,但它确实具有 videoQuality 属性,这似乎是设置此值的正确位置。就我而言:
cameraController!.videoQuality = .TypeIFrame1280x720