gpt4 book ai didi

c# - 媒体捕捉 : Photos have odd color letterboxing on Windows Phone

转载 作者:行者123 更新时间:2023-11-30 16:07:42 31 4
gpt4 key购买 nike

我有一些代码可以在拍照时为我的 Lumia 1020 获得最高质量的视频编码属性。具体如下,

 IEnumerable<VideoEncodingProperties> pIEeAllRes = cMCeCapture.VideoDeviceController.GetAvailableMediaStreamProperties(MediaStreamType.VideoPreview).Select(x => x as VideoEncodingProperties);
VideoEncodingProperties pVEPBestRes = pIEeAllRes.OrderByDescending(x => x.Width * x.Height).ThenByDescending(x => x.FrameRate.Numerator / (double)x.FrameRate.Denominator).FirstOrDefault();

这将返回我可用的仅有的 1280 x 720 分辨率之一。当我拍照时,每边都会出现奇怪的绿线。我附上了照片,知道为什么会发生这种情况以及如何避免这种情况吗?

请原谅我凌乱的脸,哈哈!

Subtype : Unknown Subtype : NV12

最佳答案

在 Windows Phone 上,您会发现三个独立的 MediaStreamTypes:VideoPreviewPhotoVideoRecord。将这些视为来自相机的三个独立流,分别用于取景器、照片和录制视频。这些是单独的流这一事实意味着您可以分别在每个流上设置分辨率(也称为 MediaStreamProperties):

  • 您可以在屏幕分辨率下运行预览
  • 您可以拍摄 20 MP 的照片
  • 您可以录制 1080p 的视频

这样您就不会一直以 20 MP 的速度运行设备。

现在,即使这些是单独的引脚,也有一些限制,您刚刚遇到了一个:捕获流(照片、视频记录)的宽高比需要与VideoPreview 的纵横比,否则你会得到奇怪的伪像。这为您提供了两个选择:

  1. 有两种独立的拍摄模式:照片和视频。在这些模式之间切换时,请确保设置与您要使用的捕获宽高比相匹配的预览分辨率。
  2. 将宽高比选择器作为顶级决策。这意味着您首先要决定是要 16:9 还是 4:3 作为您的拍摄分辨率,然后您根据那个设置预览,然后您只允许以相同的纵横比拍摄照片或视频。这样做的好处是您无需切换“模式”即可获得不同类型的捕获。

关于c# - 媒体捕捉 : Photos have odd color letterboxing on Windows Phone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30411051/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com