mac获取屏幕视频源和获取camera源类似,找个camera采集的例子,然后把session的input从AVCaptureDeviceInput改成AVCaptureScreenInput。
self.device = [videoCaptureDevices objectAtIndex:0];
self.input = [AVCaptureDeviceInput deviceInputWithDevice:self.device error:&error];
改成
_screenDisplay = CGMainDisplayID();
_screenInput = [[AVCaptureScreenInput alloc] initWithDisplayID:_screenDisplay];
获取采集屏幕分辨率:
CGDisplayModeRef modeRef = CGDisplayCopyDisplayMode(_screenDisplay);
self.targetWidth = CGDisplayModeGetPixelWidth(modeRef);
self.targetHeight = CGDisplayModeGetHeight(modeRef);
从didOutputSampleBuffer回调函数可以拿到原始屏幕帧。
其他的小feature,比如光标是否显示,截取屏幕部分区域,主屏还是副屏等,官方api有描述。