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

use*_*234 5 macos avfoundation avcapturesession

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

[session setSessionPreset:AVCaptureSessionPresetLow];  // or any others resolutions
Run Code Online (Sandbox Code Playgroud)

它似乎没有任何区别.它始终使用相机可提供的最高分辨率.这是一款符合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");
}
Run Code Online (Sandbox Code Playgroud)

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

Dan*_*ban 2

根据相机的不同,可能无法实现。UVC 兼容并不意味着支持所有功能。

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

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