3
我需要使用Xamarin.Mac窗體集成來自Macbook相機的視頻流。不過,我發現的所有文檔都只是告訴你如何在iOS和Android平臺上這樣做。在Visual Studio上使用C#和Xamarin.Mac窗體訪問MacBook相機?
你會如何從Macbook獲取視頻流?我應該看的任何圖書館?
我需要使用Xamarin.Mac窗體集成來自Macbook相機的視頻流。不過,我發現的所有文檔都只是告訴你如何在iOS和Android平臺上這樣做。在Visual Studio上使用C#和Xamarin.Mac窗體訪問MacBook相機?
你會如何從Macbook獲取視頻流?我應該看的任何圖書館?
您需要查看AVFoundation
API(不推薦使用QTKit
)。
您可以根據NSView
創建自定義Xamarin.Forms視圖渲染器,並將AVCaptureVideoPreviewLayer
指定爲控件的圖層以將攝像機輸出流式傳輸到此控件。
AVCaptureDevice device;
AVCaptureDeviceInput input;
AVCaptureStillImageOutput output;
AVCaptureSession session;
在你拍攝的設置,你可以抓住默認的AV設備假設你:當你的控制超出範圍,否則會出現泄漏到下面,並確保你Dispose
他們
商店一流水平引用想要使用內置的FaceTime Camera(也稱爲iSight
)。
的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();
}
注:很多AVFoundation
框架是iOS和MacOS的共享,但這樣如果你最終在尋找iOS的樣品存在一定的差異代碼請注意,您可能需要將其更改爲macOS。