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
을 할당하여 카메라 출력을이 컨트롤로 스트리밍 할 수 있습니다. 다음과 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();
}
참고 : AVFoundation
프레임 워크의 많은 iOS 및 맥 OS 사이에 공유되고 있지만, 아이폰 OS 샘플을 찾고 결국 그래서 만약 약간의 차이가 있습니다 코드는 macOS 용으로 변경해야한다는 것을 알고 있어야합니다.