问题标签 [mediacapture]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
79 浏览

c# - 在 MediaCapture 的视频上覆盖 PNG

我想在 MediaCapture 中叠加一个图形,例如视频层顶部的下 3 层或帧作为效果。我该怎么做呢?

我不只是想使用网格在 UI 中对其进行分层,它需要在 MediaCapture 中,以便在视频/图像录制中也捕获帧/下 3rd。

我在测试时使用了一个相当基本的 MediaCapture 实现;

0 投票
1 回答
168 浏览

uwp - UWP:如何使用 MediaCapture 为所有元数据拍照?

现在我使用 MediaCapture.CapturePhotoToStorageFileAsync 拍照,但其中没有 exif 元数据。我尝试使用 SoftwareBitnmap 类,但只获得了带有制造商和模型数据的 BitmapPropertySet。

我需要设备可以支持的所有元数据,例如使用 Windows 10 内置相机应用程序制作照片。

0 投票
1 回答
289 浏览

c# - C# MediaCapture UnuthorizedAccessException 或 Windows 更新后不支持的格式

自从我在我的 Windows 机器上进行了更新后,我就不能再在使用MediaCapture该类的 UWP 应用程序中使用相机了。

最初,我UnuthorizedAccessException在尝试调用该InitializeAsync()函数时遇到了问题,但是,我设法通过将EnableFrameServerMode添加到我的寄存器来解决此问题(通过此链接:https ://www.macecraft.com/fix-webcam-issues-windows-10 -周年纪念更新/

但是,由于这样做,该MediaFrameSource.SupportedFormats属性为空(MediaFrameSource.SupportedFormats.Count为 0)。

这仅发生在我的机器上,具有相同机器(相同硬件和软件)以及不同机器的同事没有遇到此问题。

我目前正在运行:

  • Windows 10 家庭版
  • 版本 10.0.17134 内部版本 17134

我正在使用Visual Studio 版本 15.9.4使用Xamarin.Forms构建应用程序。该应用程序的目标版本是Windows 10.0 Build 16299(最低版本相同)。

这是我的ViewRenderer中的代码:

如果在我的注册表中EnableFrameServerMode未设置为 0,我会得到一个UnauthorizedAccessException. 如果是:

SupportedFormats列表为空,导致我们的preferredFormat对象为空。

preferredFormat如果我在为空时不返回,请执行以下操作:

我只是得到一个黑色背景的屏幕,相机框架应该在哪里。

0 投票
1 回答
135 浏览

c# - 无法初始化 mediaCapture UWP

我正在使用 Windows.Media.Capture 库从笔记本电脑的默认麦克风捕获音频,

问题是我无法初始化它显示的 mediaCapture 对象:“参数不正确” 我使用了 InitializeAsync 方法,有无设置,但它不起作用。

谁能帮我解决这个问题!

谢谢,

0 投票
1 回答
677 浏览

c# - 控制台模板应用程序 MediaCapture 无法录制视频

我正在尝试在基于最小 C# UWP 控制台模板的应用程序上使用 MediaCapture 来捕获视频。使用 InitializeAsync() 初始化 MediaCapture 有效,但实际上开始录制失败,错误代码为 0xc00d3e82 / MF_E_INVALID_STATE_TRANSITION。

我已将 C# UWP 控制台应用程序模板安装到 Visual Studio 2017 以处理将使用 MediaCapture 捕获视频的最小应用程序(在这种情况下不需要 GUI,因此控制台应用程序)。最低目标是 Windows build 1803,因为这是 C# UWP 控制台应用程序所需的最低要求。

我已经尝试运行需要 await with 的方法ConfigureAwait(false),但这似乎没有任何区别。

关于这些功能,由于 UWP 控制台应用程序不会显示获取摄像头、麦克风等访问权限的权限提示,因此我在运行之前通过应用程序的设置手动授予它们。我相信所有必要的功能都包含在清单中,因为应用程序在某些情况下确实可以工作(参见代码块后面的段落)。

最小可重现示例,应使用 C# UWP 控制台应用程序模板构建和运行:

该代码在从控制台应用程序的 Main() 启动的单独异步任务中运行,但是我也尝试使 Main 本身成为异步任务并直接从那里运行 MediaCapture 代码,行为没有区别。

有趣的是,如果我在尝试录制视频之前使用 Visual Studio 的调试器运行应用程序或将调试器附加到进程,则视频捕获工作正常。但是,如果从命令提示符/Powershell 或开始菜单运行,调用 LowLagMediaRecording 实例的 StartAsync() 方法将导致上述错误代码 0xc00d3e82 / MF_E_INVALID_STATE_TRANSITION 并且没有录制视频。

非常感谢任何想法在没有调试器的情况下运行时会出现什么问题以及如何修复它。

0 投票
1 回答
248 浏览

uwp - 如何修复 GetPreviewFrameAsync 中的内存泄漏

我有基于此示例的代码;https://github.com/microsoft/Windows-universal-samples/tree/master/Samples/CameraGetPreviewFrame。每次都行;

被击中我们似乎泄漏了内存。我没有收拾什么?我也尝试过每次都创建模板框架并在每个循环上对其进行处理和归零——这似乎也不起作用。

我已经回到微软的原始样本,它似乎也泄漏了。这是我的代码;

这应该只是获取帧并将它们通过_frameProcessor.ProcessFrame()调用,但即使它什么都不做(我删除了除 GetPreviewFrameAsync 之外的所有内容)它也会泄漏。

要重复该问题,请从以下位置下载示例;https://github.com/microsoft/Windows-universal-samples/tree/master/Samples/CameraGetPreviewFrame。在 Windows 10 v 1903 (18362.175) 下使用诊断工具 (Debug->Windows->Show Diagnostic tools) 远程运行调试器中的示例到 Surface Pro 4 (i5-6300U @2.4GHz)。打开显示帧复选框并在按下 GetPreviewFrameAsync 按钮时观察内存。记忆如下所示,每次上升都是我按下按钮;

内存泄漏

0 投票
3 回答
1443 浏览

android - 为什么 capture="user" 不能将我手机的摄像头改为前置?

我尝试了以下属性capture来设置input元素以尝试选择前置摄像头。user是正面的,environment也是背面的。

但是,在移动设备(Pixel 1,最新操作系统)上试验 Chrome(最新)时,仍然选择了后置摄像头。

我使用了一个示例片段:

(来自https://w3c.github.io/html-media-capture/#the-capture-attribute

我可以在手机上更改accept为 require video,以便该属性和其他属性有效,但该capture属性无效。

编辑:我正在使用最新的 Android Chrome 浏览器。以下页面暗示 iOS 和更早版本的 Android Chrome 不能capture完全使用,但可以使用capture. https://caniuse.com/#search=html-media-capture

0 投票
2 回答
1064 浏览

c# - 如何使用 MediaCapture.VideoDeviceController 控制 UWP 中网络摄像头的曝光或亮度以进行 QR 码扫描

我正在开发一个需要从笔记本电脑网络摄像头扫描二维码的 UWP 应用程序。我为此使用了 Windows.Media.Capture.MediaCapture 类。一切正常,除了在智能手机上使用二维码时,它的亮度设置得太高,无法满足内置网络摄像头有限的动态范围。网络摄像头的自动曝光处于活动状态,但与环境相比,屏幕仍然太亮。

我正在寻找一种手动或使用某种曝光补偿模式来控制或覆盖亮度或曝光的方法。

在我的常规内置网络摄像头上启用/工作的唯一与亮度/曝光有关的属性是亮度和对比度,它们会相应地更改图像,但看起来它们是后处理效果。它们不会改变相机本身的曝光,因此无法解决问题。

全部返回假

改变图像,但高光仍然被洗掉,没有细节可供扫描仪拾取

0 投票
0 回答
184 浏览

c# - UWP 网络摄像头媒体捕获不适用于某些笔记本电脑(Surface GO、Surface 笔记本电脑、realsense ......)

我的使用网络摄像头扫描 QR 码图像的 UWP 商店应用在某些笔记本电脑上无法运行。我正在使用 MediaCapture 类进行预览和扫描。我收到了来自不同用户的报告,某些设备在应用程序中没有显示任何图像(并且没有错误消息),而其他设备则很好地显示了相机预览。以下是帮助缩小问题所在范围的设备列表。其中一些我通过进入展示笔记本电脑的大型零售商进行了测试。

这些工作:

  • 戴尔 E5450(自己测试过)
  • 联想u310(亲测)
  • 带有附加网络摄像头的联想 u310(我自己测试过)
  • 联想平板(用户报告,未验证,有多个摄像头)
  • HP Elitebook 850 g5(我自己测试过,有 Windows Hello)
  • 多台通用高端笔记本电脑

这些不起作用:

  • Surface Go(用户报告,本人验证,有 Windows Hello)
  • Surface 笔记本电脑(由用户报告,不确定哪个型号有 Windows Hello)
  • Dell Latitude 7275(用户报告,未经验证,具有实感摄像头)

最初,我认为这是由于连接了多个相机或它们的分辨率较高造成的,但经过更多的报告和测试,我认为可能是这些“特殊”相机造成了麻烦。

这是初始化代码:

整个文件在这里: https ://github.com/matthiasduyck/WifiQRCodeReader/blob/b774cbca4f9dc58f9aed53ebdb827666f4924bb2/Wifi%20QR%20code%20scanner/Managers/QRCameraManager.cs

这是商店中当前修订版的完整项目: https ://github.com/matthiasduyck/WifiQRCodeReader/tree/b774cbca4f9dc58f9aed53ebdb827666f4924bb2

这是商店中的应用程序: https ://www.microsoft.com/en-us/p/wifi-qr-code-scanner/9pnhnrbg9wlh

有谁知道发生了什么以及我如何解决这个问题?

编辑:我已更新应用程序以尝试过滤掉非彩色相机(深度、红外线等)。看起来我更新的代码没有正确执行此操作。这是尝试仅查找所有彩色相机的代码:

这是使用 windows hello 样式相机的用户得到的下拉列表: 相机下拉选项,列出了 6 个相机

0 投票
0 回答
1856 浏览

android - 新的 Api AudioPlaybackCaptureConfiguration (android 10) 无法录制语音通话

我尝试使用新的 AudioPlaybackCapture 方法在 android 10 设备中录制一些媒体。

我设法录制了所有媒体声音,例如 youtube 视频、音乐等。但我的目标是检查天气,我们可以使用它来录制来电。我尝试为使用参数设置各种值,但没有运气。在任何一种情况下,始终不会记录通话中的语音,即使扬声器电话打开也是如此。我使用以下服务来记录通话。
试图设置
AudioAttributes.USAGE_MEDIA
AudioAttributes.USAGE_VOICE_COMMUNICATION
和大多数其他参数,但没有设法记录通话。使用此代码可以完美记录其他媒体。

这是我的服务,来自活动的广播消息用于调用开始和停止录制功能。

这是在带有 android 10 的谷歌像素设备中测试的。只是想知道天气这个新的 api 只能用于记录通话或媒体。这是这个新 API 的文档。 回放捕捉

我在这里做的可能的错误是什么?