Вы захотите просмотреть AVFoundation
API (QTKit
устарело).
Вы можете создать пользовательский модуль визуализации Xamarin.Forms View на основе NSView
и назначить AVCaptureVideoPreviewLayer
в качестве слоя элемента управления для потоковой передачи вывода камеры на этот элемент управления.
Сохраните ссылки уровня класса на следующие и убедитесь, что вы Dispose
их, когда ваш элемент управления выходит за рамки, иначе будут утечки:
AVCaptureDevice device;
AVCaptureDeviceInput input;
AVCaptureStillImageOutput output;
AVCaptureSession session;
В настройках захвата вы можете захватить AV-устройство по умолчанию, если вы хотите использовать встроенную камеру FaceTime (также известную как 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();
}
![введите здесь описание изображения](https://i.stack.imgur.com/LeGGv.png)
Примечание. Большая часть фреймворка AVFoundation
используется совместно iOS и MacOS, но есть некоторые различия, поэтому, если вы в конечном итоге посмотрите на пример кода iOS, имейте в виду, что вам может потребоваться изменить его для macOS.
person
SushiHangover
schedule
12.10.2017