[英]how to change the default video capture resolution in windows phone 8,8.1
[英]How to capture high resolution video and capture photo from it in windows 8.1. I am having a UI jumping effect while tried it
我的相機拍攝應用程序用於在使用CaptureElement
的視圖中實現的相機拍攝連續照片。 當它連續拍攝照片時,UI來回移動似乎是一種跳躍效果。 那是面臨的問題。
使用的代碼如下
var cameras = await DeviceInformation.FindAllAsync(DeviceClass.VideoCapture);
MediaCaptureInitializationSettings settings=new MediaCaptureInitializationSettings { VideoDeviceId = cameras[0].Id, StreamingCaptureMode = StreamingCaptureMode.Video };
var_mediaCapture = new MediaCapture();
await _mediaCapture.InitializeAsync(settings);
if (null != videoCapture) videoCapture.Source = _mediaCapture;
await _mediaCapture.StartPreviewAsync();
設置高分辨率
int max = 0;
var resolutions = videoController.GetAvailableMediaStreamProperties(MediaStreamType.Photo);
for (var i = 0; i < resolutions.Count; i++)
{
ImageEncodingProperties res = resolutions[i] as ImageEncodingProperties;
if (null == res) continue;
if (res.Width * res.Height < max)
{
max = (int)(res.Width * res.Height);
_imageEncodingProperties = res;
}
}
await videoController.SetMediaStreamPropertiesAsync(MediaStreamType.Photo, _imageEncodingProperties);
並使用捕獲視頻幀中的照片
using (var photoStream = new InMemoryRandomAccessStream())
{
await _mediaCapture.CapturePhotoToStreamAsync(_imageEncodingProperties, photoStream);
await photoStream.FlushAsync();
}
我通過設置不同的視頻分辨率來測試捕獲。
var videoController = _mediaCapture.VideoDeviceController;
首先,我為videoController設置了默認的preview resolution [640x480]
,並且捕獲過程正在順利進行。 之后,我通過在Surface平板電腦中設置“ High resolution [1200x800]
進行了檢查,在這種情況下,視頻控件上會出現一幀相框,並且相框的每一側都有很小的寬度。 在相機視圖中,感覺就像是放大/縮小效果[后退n前跳]。
在Windows 8.1中為視頻媒體元素視頻控制器設置高分辨率時,有人遇到此問題嗎? 如果有人能解釋其原因,那將是很棒的。
謝謝
編輯:我分析了情況,發現以下內容
有許多可用的分辨率640 x 360,1280x720,1280x800,640x480等
我發現在寬高比為1.777778的分辨率下根本不會出現此問題。 比率小於1.777的所有其他分辨率都有問題。
也就是說,對於640x360、1280x720分辨率不存在此問題,而其他兩個具有跳躍效果。 我認為最后2個比率分別為1.6和1.33。
我還檢查了default camera app
並通過設置1280x800分辨率捕獲了照片,在那里我看到窗口中相機元素的兩側都有黑色邊框。
結論:
問題在於寬高比。 當我從可用的相機分辨率中設置了高分辨率[1280x800]時,該分辨率未保持曲面設備的縱橫比[1366x768],因此圖像試圖適應屏幕並出現用戶感覺到的跳躍效果。 因此,我設置了最高分辨率以維持設備的寬高比,即1280x720並解決了問題。
實際上,問題在於長寬比。 當我從可用的相機分辨率中設置了高分辨率[1280x800]時,該分辨率未保持曲面設備的縱橫比[1366x768],因此圖像試圖適應屏幕並出現用戶感覺到的跳躍效果。 因此,我設置了最高分辨率以維持設備的寬高比,即1280x720並解決了問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.