net*_*t30 3 c# xamarin xamarin.mac xamarin.forms
我需要使用Xamarin.Mac表单整合来自Macbook相机的视频流.但是,我发现的所有文档只告诉您如何在iOS和Android平台上执行此操作.
那你如何从Macbook获取视频流呢?我应该看看哪些图书馆?
您将需要查看AVFoundationAPI(QTKit不建议使用).
您可以基于a创建自定义Xamarin.Forms视图渲染器,NSView并将其指定AVCaptureVideoPreviewLayer为控件的图层,以将摄像头输出流式传输到此控件.
将类级别引用存储到以下内容,Dispose并在控件超出范围时确保它们,否则会出现泄漏:
AVCaptureDevice device;
AVCaptureDeviceInput input;
AVCaptureStillImageOutput output;
AVCaptureSession session;
Run Code Online (Sandbox Code Playgroud)
在捕获设置中,假设您要使用内置FaceTime摄像头(也称为iSight),您可以获取默认的AV设备.
macOS/Forms示例:
device = AVCaptureDevice.GetDefaultDevice(AVMediaTypes.Video);
input = AVCaptureDeviceInput.FromDevice(device, out var error);
if (error == null)
{
session = new AVCaptureSession();
session.AddInput(input);
session.SessionPreset = AVCaptureSession.PresetPhoto;
var previewLayer = AVCaptureVideoPreviewLayer.FromSession(session);
previewLayer.Frame = Control.Bounds;
Control.Layer = previewLayer;
output = new AVCaptureStillImageOutput();
session.AddOutput(output);
session.StartRunning();
}
Run Code Online (Sandbox Code Playgroud)
注:很多的AVFoundation框架的iOS和MacOS之间共享的,但也有一些差异,所以如果你最终看的iOS示例代码注意您可能需要改变它为MacOS.
| 归档时间: |
|
| 查看次数: |
571 次 |
| 最近记录: |