快速构建Windows 8风格应用29-捕获图片与视频

简介: 原文:快速构建Windows 8风格应用29-捕获图片与视频 引言 本篇博文主要介绍Windows 8中相机的概念、捕获图片与视频的基本原理、如何实现捕获图片与视频、相机最佳实践。 一、相机 关于相机 1.相机对话框提供了触屏优化的全屏体验,你可从嵌入的或附加的相机中捕获照片和视频。
原文: 快速构建Windows 8风格应用29-捕获图片与视频

BlogLogo

引言

本篇博文主要介绍Windows 8中相机的概念、捕获图片与视频的基本原理、如何实现捕获图片与视频、相机最佳实践。

一、相机

关于相机

1.相机对话框提供了触屏优化的全屏体验,你可从嵌入的或附加的相机中捕获照片和视频。

2.全屏对话框处理显示相机 UI 的工作。

3.通过此对话框,你可以使用对 Windows.Media.Capture.CameraCaptureUI.captureFileAsyncAPI 的一种方法调用捕获照片或视频。

4.作为捕获体验的一部分,用户可对其捕获的照片进行修剪,对捕获的视频进行剪辑,然后再将它们返回至调用应用程序。

5.用户在捕获照片或视频前,还可调整一些相机设置,例如亮度、对比度和曝光等。相机对话框用于实时照片和视频捕获。

相机设置

1

1.可通过相机选项调整相机设置

2.包括照片分辨率;是否视频防抖动;亮度;对比度等选项

编辑照片

2

1.“裁剪”按钮进行裁剪照片

2.“确定”按钮确认捕获的照片

3.“重拍”按钮重新拍摄照片

编辑视频

3

1.“剪辑”按钮进行剪辑视频

2.“确定”按钮确认捕获的视频

3.“重拍”按钮重新拍摄视频

二、捕获图片与视频的基本原理

image

首先,我们需要在清单文件中注册摄像头/麦克风权限。

其次,在相应的.cs文件中,添加命名空间。

最后,声明CameraCaptureUI对象、设置对象属性、调用CaptureFileAsync方法。

然后我们就可以通过应用程序调用摄像头来捕获照片/视频了。

三、如何实现捕获图片与视频

启用摄像头权限

4

1.捕获照片时,应用必须允许使用摄像头

2.可通过设置应用程序清单文件(Package.appxmanifest)启用摄像头权限

3.Capabilities选项卡中勾选Webcam项

启用麦克风权限

5

1.捕获视频时,应用一般允许使用麦克风

2.可通过设置应用程序清单文件(Package.appxmanifest)启用麦克风权限

3.Capabilities选项卡中勾选Microphone项

捕获照片相关属性

6

捕获视频相关属性

7

如何捕获照片

   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.如果你的应用程序为视频或照片编辑应用程序,或具备某些照片或视频编辑功能,则应在修剪和裁剪功能关闭的情况下,使用相机对话框。然后,你的应用程序中的修剪和裁剪功能将不会与相机对话框中提供的功能重复。

 

相关参考资料:

1.媒体捕获示例

2.摄像头捕捉 UI 示例

3.摄像头选项 UI 示例

4.捕获或呈现音频、视频和图像(使用 C#/VB/C++ 和 XAML 的 Windows 应用商店应用) (Windows)

目录
相关文章
|
29天前
|
Windows
构建布局良好的Windows程序
构建布局良好的Windows程序
11 0
|
3月前
|
Go Windows
windows安装scoop/annie下载B站等视频
windows安装scoop/annie下载B站等视频
41 0
|
5月前
|
应用服务中间件 nginx Windows
windows下DOS命令杀掉Nginx应用进程
windows下DOS命令杀掉Nginx应用进程
|
3月前
|
API Python Windows
python3应用windows api对后台程序窗口及桌面截图并保存的方法
python3应用windows api对后台程序窗口及桌面截图并保存的方法
89 1
|
1月前
|
数据可视化 数据库 C++
Qt 5.14.2揭秘高效开发:如何用VS2022快速部署Qt 5.14.2,打造无与伦比的Windows应用
Qt 5.14.2揭秘高效开发:如何用VS2022快速部署Qt 5.14.2,打造无与伦比的Windows应用
|
2月前
|
机器人 Linux 数据安全/隐私保护
Python办公自动化【Windows中定时任务、OS/linux 系统定时任务 、Python 钉钉发送消息、Python 钉钉发送图片】(九)-全面详解(学习总结---从入门到深化)
Python办公自动化【Windows中定时任务、OS/linux 系统定时任务 、Python 钉钉发送消息、Python 钉钉发送图片】(九)-全面详解(学习总结---从入门到深化)
66 0
|
2月前
|
安全 Linux iOS开发
上传 iOS 应用变得更加容易 - 在 Windows 上架 iOS APP 的工具介绍
上传 iOS 应用变得更加容易 - 在 Windows 上架 iOS APP 的工具介绍
|
3月前
|
机器人 Linux 数据安全/隐私保护
Python办公自动化【Windows中定时任务、OS/linux 系统定时任务 、Python 钉钉发送消息、Python 钉钉发送图片】(九)-全面详解(学习总结---从入门到深化)(下)
Python办公自动化【Windows中定时任务、OS/linux 系统定时任务 、Python 钉钉发送消息、Python 钉钉发送图片】(九)-全面详解(学习总结---从入门到深化)
58 0
|
3月前
|
Linux Python Windows
Python办公自动化【Windows中定时任务、OS/linux 系统定时任务 、Python 钉钉发送消息、Python 钉钉发送图片】(九)-全面详解(学习总结---从入门到深化)(上)
Python办公自动化【Windows中定时任务、OS/linux 系统定时任务 、Python 钉钉发送消息、Python 钉钉发送图片】(九)-全面详解(学习总结---从入门到深化)
38 0
|
3月前
|
存储 Kubernetes 安全
虚拟机测试Windows Server 2016原地升级2019,应用和数据完美保留
Windows Server 2016可以无缝升级到2019版本,确保应用程序和数据在原地升级过程中完整保留。
102 0