質問: new OutputRecorder(); // サブスレッド用のシリアルキューを用意し、そこでフレームの取得を行う output.SetSampleBufferDelegate(outputRecorder, queue); session.AddOutput(output); } session.StartRunning(); // セッションが動きだし、実際にデータを取得する return true; } }
回答: ViewControllerとCameraVIewとでUIImageViewをやりとりできるようにCameraView側にUIImageViewのプロパティをおいてそれ経由で更新するのはどうでしょうか? こういうことではなかったらすみません。 ``` public class CameraView { //ViewControllerとやりとりするプロパティを作る public UIImageView ImageView { get; set; } //略 public void Hoge() { //それをOutputRecorderに渡す outputRecorder = new OutputRecorder(ImageView); } } public class OutputRecorder : AVCaptureVideoDataOutputSampleBufferDelegate { private UIImageView _imageView; public OutputRecorder(UIImageView imageView) { _imageView = imageView; } public override void DidOutputSampleBuffer( AVCaptureOutput captureOutput, CMSampleBuffer sampleBuffer, AVCaptureConnection connection) { //BufferからUIImageを取得する処理 var image = GetImageFromSampleBuffer(sampleBuffer); //Device.BeginInvokeOnMainThread(() => { InvokeOnMainThread(() =>{ //画像を取得する度に画像更新 _imageView.Image = image; }); } } ```