一、相機
關於相機
1.相機對話框提供了觸屏優化的全屏體驗,你可從嵌入的或附加 的相機中捕獲照片和視頻。
2.全屏對話框處理顯示相機 UI 的工作。
3.通過此對話框, 你可以使用對 Windows.Media.Capture.CameraCaptureUI.captureFileAsyncAPI 的一種方法調用捕獲 照片或視頻。
4.作為捕獲體驗的一部分,用戶可對其捕獲的照片進行修剪,對捕獲的視頻進行 剪輯,然後再將它們返回至調用應用程序。
5.用戶在捕獲照片或視頻前,還可調整一些相機設 置,例如亮度、對比度和曝光等。相機對話框用於實時照片和視頻捕獲。
相機設置
1.可通過相機選項調整相機設置
2.包括照片分辨率;是否視頻防抖動;亮度;對比度等選項
編輯照片
1.“裁剪”按鈕進行裁剪照片
2.“確定”按鈕確認捕獲的照片
3.“重拍”按鈕重新 拍攝照片
編輯視頻
1.“剪輯”按鈕進行剪輯視頻
2.“確定”按鈕確認捕獲的視頻
3.“重拍”按鈕重新 拍攝視頻
二、捕獲圖片與視頻的基本原理
首先,我們需要在清單文件中注冊攝像頭/麥克風權限。
其次,在相應的.cs文件中,添加命 名空間。
最後,聲明CameraCaptureUI對象、設置對象屬性、調用CaptureFileAsync方法。
然後我們就可以通過應用程序調用攝像頭來捕獲照片/視頻了。
三、如何實現捕獲圖片 與視頻
啟用攝像頭權限
1.捕獲照片時,應用必須允許使用攝像頭
2.可通過設置應用程序清單文件 (Package.appxmanifest)啟用攝像頭權限
3.Capabilities選項卡中勾選Webcam項
啟用 麥克風權限
1.捕獲視頻時,應用一般允許使用麥克風
2.可通過設置 應用程序清單文件(Package.appxmanifest)啟用麥克風權限
3.Capabilities選項卡中勾選 Microphone項
捕獲照片相關屬性
捕獲視頻相關屬性
如何捕獲照片
1: using Windows.Media.Capture;
2: private async void OnCapturePhoto(object sender, TappedRoutedEventArgs e)
3: {
4: var camera = new CameraCaptureUI();
5:
6: var file = await camera.CaptureFileAsync(CameraCaptureUIMode.Photo);
7: if (file != null)
8: {
9: photo = file;
10:
11: DataTransferManager.ShowShareUI();
12: } 13: }
通過CameraCaptureUIMode可以設置Phone;Video;PhoneOrVideo。
如何捕獲視頻
1: using Windows.Media.Capture;
2: private async void OnCaptureVideo(object sender, TappedRoutedEventArgs e)
3: {
4: var camera = new CameraCaptureUI();
5:
6: camera.VideoSettings.Format = CameraCaptureUIVideoFormat.Wmv;
7:
8: var file = await camera.CaptureFileAsync(CameraCaptureUIMode.Video);
9: if (file != null)
10: {
11: video = file;
12: DataTransferManager.ShowShareUI();
13: }
14: }
四、相機最佳實踐相機UI的合理使用
例如:對於提供個人資料圖片的應用,可通過啟動相機 對話框捕獲照片,進行更新個人資料。
相機UI的不合理使用
1.當用戶使用相機掃描條形 碼時,條形碼閱讀器應用可以為用戶提供實時反饋,以讓用戶知道該條形碼是否可讀。這種情況下,使 用相機對話框可能不是正確的選擇,因為其對捕獲的視頻流不提供任何直接控制。你應該轉而使用 MediaCapture API。
2.如果你需要添加超出相機對話框所提供功能的 UI 自定義,你應該轉而 使用 MediaCapture。
3.如果你的應用程序為視頻或照片編輯應用程序,或具備某些照片或視頻 編輯功能,則應在修剪和裁剪功能關閉的情況下,使用相機對話框。然後,你的應用程序中的修剪和裁 剪功能將不會與相機對話框中提供的功能重復。