簡體   English   中英

如何在Windows 8.1中捕獲高分辨率視頻並從中捕獲照片。 嘗試時出現UI跳躍效果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM