2017-10-11 10 views

답변

5

AVFoundation API (QTKit은 사용되지 않음)를 검토하는 것이 좋습니다.

NSView을 기반으로하는 사용자 지정 Xamarin.Forms보기 렌더러를 만들고 컨트롤의 레이어로 AVCaptureVideoPreviewLayer을 할당하여 카메라 출력을이 컨트롤로 스트리밍 할 수 있습니다. 다음과 Dispose 그 확인에

저장 클래스 수준 참조 컨트롤이 달리있을 것 누출 범위를 벗어나 :

캡처 설정에서
AVCaptureDevice device; 
AVCaptureDeviceInput input; 
AVCaptureStillImageOutput output; 
AVCaptureSession session; 

, 당신이 가정 기본 AV 장치를 잡을 수 있습니다 빌드 인 FaceTime 카메라 (iSight라고도 함)를 사용하려고합니다.

맥 OS/양식 예 :

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 및 맥 OS 사이에 공유되고 있지만, 아이폰 OS 샘플을 찾고 결국 그래서 만약 약간의 차이가 있습니다 코드는 macOS 용으로 변경해야한다는 것을 알고 있어야합니다.