public async Task <ImageAnalyzer> CaptureFrameAsync() { try { if (!(await this.frameProcessingSemaphore.WaitAsync(250))) { return(null); } // Capture a frame from the preview stream var videoFrame = new VideoFrame(BitmapPixelFormat.Bgra8, CameraResolutionWidth, CameraResolutionHeight); using (var currentFrame = await captureManager.GetPreviewFrameAsync(videoFrame)) { using (SoftwareBitmap previewFrame = currentFrame.SoftwareBitmap) { ImageAnalyzer imageWithFace = new ImageAnalyzer(await CoreUtil.GetPixelBytesFromSoftwareBitmapAsync(previewFrame)); imageWithFace.ShowDialogOnFaceApiErrors = this.ShowDialogOnApiErrors; imageWithFace.FilterOutSmallFaces = this.FilterOutSmallFaces; imageWithFace.UpdateDecodedImageSize(this.CameraResolutionHeight, this.CameraResolutionWidth); imageWithFace.CameraIPAdres = CameraIPAdres; imageWithFace.imageWidth = 1280; imageWithFace.imageHeight = 720; imageWithFace.CaptureTime = DateTime.Now; imageWithFace.ListDetectedFaceJson = JsonConvert.SerializeObject(faces.Select(r => r.FaceBox).ToList()); return(imageWithFace); } } } catch (Exception ex) { if (this.ShowDialogOnApiErrors) { // await Util.GenericApiCallExceptionHandler(ex, "Lỗi chụp ảnh."); } } finally { this.frameProcessingSemaphore.Release(); } return(null); }