gpt4 book ai didi

c# - 在 Visual Studio 上使用 C# 和 Xamarin.Mac 表单访问 MacBook 相机?

转载 作者:行者123 更新时间:2023-11-30 14:47:07 25 4
gpt4 key购买 nike

我需要使用 Xamarin.Mac 表单集成来 self 的 Macbook 相机的视频流。但是,我找到的所有文档都只告诉您如何在 iOS 和 Android 平台上执行此操作。

那么您将如何从 Macbook 获取视频流?我应该查看哪些库?

最佳答案

您将要查看 AVFoundation API(QTKit 已弃用)。

您可以基于 NSView 创建自定义 Xamarin.Forms View 呈现器并分配 AVCaptureVideoPreviewLayer作为控件层将相机输出流式传输到此控件。

存储对以下类级别的引用并确保您 Dispose当您的控件超出范围时,它们会发生泄漏:

AVCaptureDevice device;
AVCaptureDeviceInput input;
AVCaptureStillImageOutput output;
AVCaptureSession session;

在您的捕捉设置中,假设您想使用内置的 FaceTime 摄像头(也称为 iSight),您可以获取默认的 AV 设备。

macOS/表单示例:

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();
}

enter image description here

注意:很多AVFoundation框架在 iOS 和 MacOS 之间共享,但存在一些差异,因此如果您最终查看 iOS 示例代码,请注意您可能需要针对 macOS 更改它。

关于c# - 在 Visual Studio 上使用 C# 和 Xamarin.Mac 表单访问 MacBook 相机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46698517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com