2017-10-11 41 views

回答

5

您需要查看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(); 
} 

enter image description here

注:很多AVFoundation框架是iOS和MacOS的共享,但這樣如果你最終在尋找iOS的樣品存在一定的差異代碼請注意,您可能需要將其更改爲macOS。

相關問題