/// <summary> /// 获得预览分辨率 /// </summary> private static void GetPreviewSize() { var previewSizeList = MainCamera.VideoDeviceController.GetAvailableMediaStreamProperties(MediaStreamType.VideoPreview); var sizeList = new List <VideoEncodingProperties>(); var listCount = previewSizeList.Count; foreach (var item in previewSizeList) { var sizeItem = item as VideoEncodingProperties; if (sizeItem == null) { continue; } if (sizeItem.Width < AppDefaultHelper.CAMERA_VGA_WIDTH || sizeItem.Height < AppDefaultHelper.CAMERA_VGA_HEIGHT) { continue; } var oldItem = sizeList.FirstOrDefault(li => (li.Width == sizeItem.Width && li.Height == sizeItem.Height)); if (oldItem != null) { uint oldRate = oldItem.FrameRate.Numerator / oldItem.FrameRate.Denominator; uint rate = sizeItem.FrameRate.Numerator / sizeItem.FrameRate.Denominator; if (oldRate < rate) { sizeList.Remove(oldItem); } else { continue; } } sizeList.Add(sizeItem); } if (CameraPreviewSizeList == null) { CameraPreviewSizeList = new List <CameraSizeInfo>(); } else { CameraPreviewSizeList.Clear(); } foreach (var item in sizeList.OrderBy(li => li.Width)) { CameraPreviewSizeList.Add(new CameraSizeInfo(item, item.Width, item.Height)); } }
/// <summary> /// 停止预览 /// </summary> public static async Task StopPreview() { try { if (CameraPreviewSizeList != null) { CameraPreviewSizeList.Clear(); } CameraPreviewSizeList = null; if (CameraPhotoSizeList != null) { CameraPhotoSizeList.Clear(); } await CloseLowLagPhoto(); CameraPhotoSizeList = null; IsSupportROI = false; IsSupportContinuousCapture = false; IsSupportHWZoom = false; if (MainCamera != null) { try { await MainCamera.StopPreviewAsync(); } catch (Exception ex) { } try { MainCamera.Dispose(); } catch (Exception ex) { } } MainCamera = null; CurrentCamDevice = null; FailedIndex = 1; IsCanUseCamera = false; } catch (Exception ex) { } }