快速構建Windows 8風格應用29-捕獲圖片與視頻

引言

本篇博文主要介紹Windows 8中相機的概念、捕獲圖片與視頻的基本原理、如何實現捕獲圖片與視頻、相機最佳實踐。
一、相機
關於相機
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可以設置PhoneVideo;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.如果你的應用程序爲視頻或照片編輯應用程序,或具備某些照片或視頻編輯功能,則應在修剪和裁剪功能關閉的情況下,使用相機對話框。然後,你的應用程序中的修剪和裁剪功能將不會與相機對話框中提供的功能重複。
 
相關參考資料:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章