C# MediaCapture:照片在Windows Phone上有奇怪的彩色字母框
我有一些代码可以在拍照时为我的Lumia 1020获得最高质量的视频编码属性。具体如下:C# MediaCapture:照片在Windows Phone上有奇怪的彩色字母框,c#,windows-phone,win-universal-app,windows-10,C#,Windows Phone,Win Universal App,Windows 10,我有一些代码可以在拍照时为我的Lumia 1020获得最高质量的视频编码属性。具体如下: IEnumerable<VideoEncodingProperties> pIEeAllRes = cMCeCapture.VideoDeviceController.GetAvailableMediaStreamProperties(MediaStreamType.VideoPreview).Select(x => x as VideoEncodingProperties); Vid
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();
IEnumerable pIEeAllRes=cMCeCapture.VideoDeviceController.GetAvailableMediaStreamProperties(MediaStreamType.VideoPreview)。选择(x=>x作为视频编码属性);
VideoEncodingProperties pVEPBestRes=pieallres.OrderByDescending(x=>x.Width*x.Height)。然后ByDescending(x=>x.FrameRate.Numerator/(double)x.FrameRate.deminator)。FirstOrDefault();
这将返回我仅有的1280 x 720分辨率之一。当我拍照时,两边都有奇怪的绿线。我已经附上了这些照片,你知道为什么会发生这种情况以及如何避免吗
请原谅我的脸凌乱哈哈
典型的,只是尝试了一些东西并解决了问题,我将编码道具的类型改为照片而不是视频预览
IEnumerable<VideoEncodingProperties> pIEeAllRes = cMCeCapture.VideoDeviceController.GetAvailableMediaStreamProperties(MediaStreamType.Photo).Select(x => x as VideoEncodingProperties);
VideoEncodingProperties pVEPBestRes = pIEeAllRes.OrderByDescending(x => x.Width * x.Height).ThenByDescending(x => x.FrameRate.Numerator / (double)x.FrameRate.Denominator).FirstOrDefault();
在Windows Phone上,您可以找到三种不同的
MediaStreamType
:VideoPreview
,Photo
和VideoRecord
。可以将这些视为来自相机的三个独立流,分别用于取景器、照片和录制视频。这些流是独立的,这意味着您可以分别设置每个流的分辨率(也称为MediaStreamProperties):
- 您可以以屏幕分辨率运行预览
- 你可以用20MP的速度拍摄照片
- 您可以用1080p录制视频
在您的问题中,您正在更改取景器的分辨率(“视频预览”),在这个答案中,您正在更改拍摄照片的分辨率。这是两件不同的事情,更多细节请参见我的答案。
await cMCeCapture.VideoDeviceController.SetMediaStreamPropertiesAsync(MediaStreamType.Photo,