MAC OS X:使用AVCaptureSession的sessionPreset设置外部USB摄像头分辨率不起作用

时间:2012-10-03 22:40:43

标签: macos avfoundation avcapturesession

我正在尝试使用以下方法设置摄像机的捕获会话分辨率:

[session setSessionPreset:AVCaptureSessionPresetLow];  // or any others resolutions

似乎没有任何区别。它始终使用相机可提供的最高分辨率。这是一款符合UVC标准的USB摄像头,并非由Apple制造。

问题:setSessionPreset可以应用于外置USB非Apple相机吗?或者我的问题是别的什么?

编辑: 我也试过这个测试:

if ([session canSetSessionPreset:AVCaptureSessionPresetLow])
{
    NSLog(@"can presetlow");    // this part got called.
    [session beginConfiguration];
    session.sessionPreset = AVCaptureSessionPresetLow;
    [session commitConfiguration];
}
else
{
    NSLog(@"no, can't presetlow");
}

赏金问题:在这种情况下如何设置相机分辨率?

1 个答案:

答案 0 :(得分:2)

取决于相机,可能无法实现。 UVC兼容并不意味着支持所有功能。

http://www.mac-compatible-web-cam.com/?ID=McRmr2

根据您的应用程序,解决方法可能是获取高分辨率图像并将其转换为代码中的较低分辨率。