iphone - 在 AVFoundation 中使用不同的分辨率预设

标签 iphone ios avfoundation avcapturesession

我正在尝试使用 AVFoundation 实现三种录制模式:音频、视频和照片。音频和视频工作正常,但问题是,如果我将 session 预设设置为 AVCaptureSessionPreset352x288,静态图片也会以该分辨率保存。如果我将我的 session 预设更改为 AVCaptureSessionPresetPhoto,那么照片看起来不错,但视频停止工作,因为这不是视频支持的预设。我试过创建多个 session 、重新分配 session 预设等,但似乎没有任何效果。谁有办法让低分辨率的视频和全分辨率的静止图像一起工作?

最佳答案

在拍照之前设置新 session 预设的属性

// captureSession is your capture session object
[captureSession beginConfiguration];
captureSession.sessionPreset = AVCaptureSessionPresetHigh;
[captureSession commitConfiguration];

然后调用您的捕获图像处理程序

captureStillImageAsynchronouslyFromConnection: completionHandler:

然后改回低分辨率(= prevPreset)

[captureSession beginConfiguration];
captureSession.sessionPreset = prevPreset;
[captureSession commitConfiguration];

关于iphone - 在 AVFoundation 中使用不同的分辨率预设,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9845490/

相关文章:

iOS : AVFoundation Image Capture Dark

ios - 获取相机预览到 AVCaptureVideoPreviewLayer

iphone - 如何在 UITableView 中为自定义单元格使用 UISearchBar

iphone - 可以将多个 NSUndoManager 与一个 Core-Data ManagedObjectContext 一起使用吗?

ios - 顺时针旋转按钮,然后回到原来的位置

ios - 无法在 IOS8 中使用 showSegue 以编程方式 "push"viewcontroller

ios - 即使有,Xcode 也找不到 Bolts 框架

iphone - AVAssetImageGenerator 提供旋转的图像

ios - 提交由其他开发者启动的应用

iphone - 如何从移动网站打开 iOS 6 map ?