AVCaptureSession:在一个图像缓冲区中捕获所有屏幕

问题描述

我正在尝试使用AVCaptureSessionAVCaptureScreenInput使用以下代码对整个屏幕(所有监视器)进行屏幕记录:

captureSession = [[AVCaptureSession alloc] init];
inputs = [NSMutableArray new];

for (int i = 0; i < displayCount; i++) {
   AVCaptureScreenInput* input = [[AVCaptureScreenInput alloc] initWithDisplayID:activeDisplays[i]];
    input.minFrameDuration = inputCaptureDuration;

    [input setCapturesCursor:YES];
    
    [inputs addObject:input];
    
    [captureSession addInput:input];
}

output = [[AVCaptureVideoDataOutput alloc] init];

[output setSampleBufferDelegate:self queue:queue1];

[captureSession addOutput:output];

这只给了我一个带有主要显示图像数据的图像缓冲区。

我需要所有监视器输入的图像。可以使用AVCaptureSession来做到这一点吗? 附带问题:为什么输出代理未接收到辅助监视器图像数据?

注意:一种替代方法是获取所有显示的屏幕截图,但我正在寻找一种使用AVCaptureSession

的方法

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...