Iphone 使用AVFoundation的不同分辨率预设

Iphone 使用AVFoundation的不同分辨率预设,iphone,ios,avfoundation,avcapturesession,Iphone,Ios,Avfoundation,Avcapturesession,我正在尝试使用AVFoundation实现三种录制模式:音频、视频和照片。音频和视频工作正常,但问题是,如果我将会话预设设置为AVCaptureSessionPreset352x288,静态图片也会以该分辨率保存。如果我将会话预设更改为AVCaptureSessionPresetPhoto,则照片看起来很棒,但视频停止工作,因为这不是视频支持的预设。我尝试过创建多个会话,重新分配会话预设等,但似乎没有任何效果。有没有人能在低分辨率的视频和全分辨率的静止图像中实现此功能?拍照前,请设置新会话预设的

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

拍照前,请设置新会话预设的属性

// captureSession is your capture session object
[captureSession beginConfiguration];
captureSession.sessionPreset = AVCaptureSessionPresetHigh;
[captureSession commitConfiguration];
然后调用您的捕获图像处理程序

captureStillImageAsynchronouslyFromConnection: completionHandler:
然后切换回低分辨率(=预设值)


此方法是否适合获取全分辨率图像(根据设备照片捕获分辨率,我指的是5MP或8MP图像),或者只是以视频捕获支持的更高分辨率获取图像的一种改进?如果回答是“是”,那么在.sessionPreset上使用什么值来获得照片捕获分辨率?拍摄(高分辨率)照片时视频预览是否冻结?
[captureSession beginConfiguration];
captureSession.sessionPreset = prevPreset;
[captureSession commitConfiguration];