使用AVFoundation的不同分辨率预设

3
我试图使用AVFoundation实现三种录制模式:音频、视频和照片。音频和视频都能正常工作,但问题在于,如果我将会话预设设置为AVCaptureSessionPreset352x288,则静态图片也以该分辨率保存。如果我将我的会话预设更改为AVCaptureSessionPresetPhoto,则照片看起来很好,但视频停止工作,因为这不是支持的视频预设。我尝试创建多个会话,重新分配会话预设等,但似乎没有什么作用。有没有办法使视频以低分辨率工作,并且静态图像以全分辨率显示?
1个回答

3

在拍照之前,设置一个新的会话预设属性。

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

然后调用您的图像捕获处理程序。
captureStillImageAsynchronouslyFromConnection: completionHandler:

然后切换回低分辨率 (= 上一个预设)

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

这种方法是否适用于获取全分辨率图像(我的意思是根据设备拍照分辨率获得5MP或8MP图像),还是只是改进以获得支持视频捕获的更高分辨率的图像? 如果答案是肯定的,那么在.sessionPreset中使用什么值来进行照片捕获分辨率? 在捕获(高分辨率)照片时,视频预览是否会冻结? - Fivos Vilanakis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接