问题标签 [mediadevices]
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.
javascript - navigator.mediaDevices.ondevicechange 事件未在 Firefox 71 (Mac OS) 上触发
在进行 webrtc 呼叫之前,我正在锁定蓝牙设备,我拨打电话并在通话期间关闭蓝牙设备。关闭蓝牙设备不会触发ondevicechange
事件。
chrome浏览器中的相同场景,ondevicechange
事件被触发。
任何潜在客户或任何其他人都面临与 Firefox 相同的问题
javascript - navigator.mediaDevices.ondevicechange 在使用音频插孔时不起作用
我正在尝试使用 MediaDevice API 响应设备更改事件,如下所示
它仅适用于不适用于 3.5m 插孔的 USB 设备
javascript - 在不打开相机的情况下请求相机许可
每当我在浏览器上接受使用相机的权限时,我的桌面相机就会亮起。我认为这是因为 navigator.mediaDevices.getUserMedia() 成功返回一个流,并且该流直接来自相机。
我不希望在接受许可后立即从相机流出。
有没有一种方法可以让我无需“立即”使用相机就可以请求许可。我以后会用相机。
javascript - 视频流启动时触发的事件,使用getUserMedia
我正在使用带有视频流输入(网络摄像头或手机摄像头)的 ZXing JS 条码扫描器库https://github.com/zxing-js/library/ ,如以下代码中所述。
一般来说,<video>
当视频流刚刚开始时,如何将事件侦听器添加到 a 以执行操作?(使用MediaDevices.getUserMedia
视频流API的视频,从ZXing的开始decodeFromInputVideoDevice
)?
注意:目前我正在使用setTimeout(..., 2000)
当用户单击按钮开始视频时,但显然如果出现对话框“您要允许该网站使用摄像头设备吗?”,则此操作失败,然后2 秒是不够的。事件“VideoHasJustStarted”的监听器会更好。
编辑:
这是一个显示问题的 jsFiddle:不使用各种事件:started
, devicechange
.
javascript - microsoft edge mobile ios 13.3.1 中的 navigator.mediaDevices
有没有人尝试在 microsoft edge 移动浏览器上从 iphone 相机捕获视频?它有效吗?navigator.mediaDevices
返回我undefined
,我想知道该浏览器是否根本不支持 mediaDevices API,或者它只是一个相机访问问题。
javascript - Javascript DOMException:关联的 Track 处于无效状态
我正在尝试在 nodeJS 服务器上创建照片捕获 Web 应用程序,并且我正在使用下面的javascript代码。
gotMedia 函数是这样的:
一切正常,图像捕获还可以,但是当我一张一张快速拍摄照片时出现错误,上面写着:
grabFrame() 错误:DOMException:关联的 Track 处于无效状态。
这通常发生在我拍摄太多照片时(例如快速单击大约 20 秒以上),但前五张快照也发生了这种情况。有谁知道发生了什么,我应该改变什么,以解决这个问题?感谢您的时间。
javascript - MediaDevices.enumerateDevices 返回的设备标签列表
在浏览器中调用navigator.mediaDevices.enumerateDevices会返回MediaDeviceInfo
客户端上存在的每个媒体设备。这包括deviceId
、groupId
和kind
。label
过滤kind === 'videoinput'
我可以获得可用的摄像机列表。
但是,label
不同客户端上的设备似乎差异很大。例如,MacBook Pro 上的摄像头标签可能是“FaceTime HD Camera (05ac:8514)”,而 Pixel 3 主摄像头上的标签是“camera2 0, face back”。
是否有常见客户端(移动设备、笔记本电脑或 USB 相机)返回哪些标签的列表,以便我可以在我的代码中解析它们并向最终用户提供一致的名称?
audio - 选择要输出音频的扬声器
假设您正在构建一个 Web 应用程序,它将在具有两个扬声器、扬声器和您在通话时放在耳边的电话扬声器的移动设备上运行。
可以选择扬声器以使用 HTML5 和 JavaScript 输出音频吗?我们在打电话时将电话放在扬声器中,反之亦然。
我已经检查了 MDN 文档中有关音频元素和 MediaDevices API 的信息,但通常看不到有关音频输出设备的任何信息,通常都是关于输入设备的。
javascript - getDisplayMedia“无法启动音频源”
我有 chrome,版本信息:
Google Chrome 80.0.3987.149(官方内部版本)(64 位)(同类群组:稳定版) 修订版 5f4eb224680e5d7dca88504586e9fd951840cac6-refs/branch-heads/3987_137@{#16} 操作系统 Windows 7 Service Pack 1(内部版本 7601.24544)
当我执行
然后在弹出窗口中选择“共享音频”,我得到一个 DOM 异常:
“无法启动音频源”
这只发生在我的桌面 windows 7 上,但在我的 windows 7 笔记本电脑上,它不会显示此错误。我刚刚从我的程序文件中复制了 Chrome 文件夹并将其放在桌面上,从工作的笔记本电脑上,但仍然存在错误。
我注意到在对音频的支持下,它提到 chrome 版本 74^ 是 [几乎唯一受支持的],我似乎有 80 版。
如果有办法,任何想法如何解决这个问题?
javascript - 是否可以在没有画布 api 的情况下直接操作媒体流?
我使用 javascript 和 WebRTC 创建了一个简单的视频聊天,用于在用户客户端之间建立连接使用画布api修改我的意思是视频流被处理然后在画布中绘制下一个reproccess以便作为从中获得的MediaStream发送我觉得所有这些步骤都是多余的,我想知道是否存在一些直接操作视频流的方法避免画布API的使用?