c# - 媒体捕捉 - 手机拍摄的照片较暗

标签 c# windows win-universal-app windows-10 windows-10-universal

我正在尝试制作当您单击 livetile 时拍照的应用程序。不幸的是,智能手机上存在一些问题:此应用程序保存的照片全黑。我不知道我会做错什么。

事实:

  1. 此 UWP 应用在 PC 上运行正常,问题仅出现在我的 Lumia 设备上
  2. 正确检测到相机
  3. 这不是 livetile 的问题:无论我点击 livetile 还是点击按钮拍照都不起作用
  4. 并非所有照片都是全黑的。当我拍摄 window (由于阳光而明亮)的照片时,我可以看到它模糊的形状。也许照片拍摄正确,但不知何故变暗了?

代码太多要粘贴,所以我决定在 GitHub 上发布整个项目。

[LINK TO GITHUB]

您知道为什么它不起作用吗?这段代码大部分是从一个教程中复制过来的,所以很奇怪它有问题。

最佳答案

我找到了灵魂:

初始化MediaCapture后、拍照前,需要创建CaptureElement并开始预览。

var captureElement = new CaptureElement();
captureElement.Source = _mediaCapture;

await _mediaCapture.StartPreviewAsync();

Why you need to start previewing

dark pictures are often due to the lack of video preview. Camera drivers use the preview stream to run their 3A algorithms (auto-whitebalance/focus/exposure).

Why you need to create Capture Element

This error [that is shown when you use StartPreviewAsync without CaptureElement] occurs because currently StartPreviewAsync requires a sink to output frames to. This can be fixed by creating a capture element in xaml to display the frames.

关于c# - 媒体捕捉 - 手机拍摄的照片较暗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37031540/

相关文章:

c# - Windows/.Net 中的蓝牙 API?

python - 子进程 stdin PIPE 在程序终止之前不会返回

windows - 连接两个具有相同名称的播放设备时如何设置默认音频设备

c# - 使用StorageFile来获取位图尺寸,然后再使用它来读取图像?

c# - 如何批量插入SQLITE数据库?

c# - 当应用程序进程被终止/崩溃时终止子进程

c# - SharpPcap 4.2 与 WinPcap 4.1.3 给出 "Unable to open offline adapter: bad dump file format"

Windows 相当于 Mac OS X “open” 命令

c# - 如何添加评价我的应用程序按钮 (UWP)

c# - 如何让事件至少间隔一个给定的时间跨度?