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 (将#修改为@)