问题标签 [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.

0 投票
1 回答
341 浏览

javascript - 创建录音机时的异步承诺问题

我正在制作录音机,我正在使用 promise async 来学习 async 。

这是我的代码,一次调用可以正常工作,但是一旦我在函数handleAction结束时递归调用函数,它就会开始表现得很奇怪。

我不知道为什么,但代码在 Snippet 上不起作用。

如果我不在handlefunction函数的末尾调用handleAction()函数,它工作正常

0 投票
1 回答
388 浏览

javascript - 如何获取当前连接的所有活动视频设备?

我正在尝试获取所有活动的视频设备。但取而代之的是,我收到了之前连接的所有视频设备。我的目标是只获取当前连接并准备好使用的视频设备。

我尝试使用 navigator.mediaDevices.enumerateDevices(); 获取所有活动设备,但我收到了很多不活动的设备。

0 投票
0 回答
240 浏览

angular - navigator.mediaDevices 在 Angular 8 应用程序生产版本中不可用

我想navigator.mediaDevices在我的应用程序中使用,并且在开发中构建所有作品,我可以访问这个对象。当我构建产品并将应用程序上传到服务器时,导航器没有像 mediaDevices 这样的对象。我在任何地方都找不到有关它的任何信息。

我使用角度 8。

我创建了一个基本的测试应用程序,然后创建了一个生产版本并将应用程序上传到我的服务器。在本地主机中,我可以访问navigator.mediaDevices服务器上的 prod 版本undefined

我的生产应用程序:http: //modecode.pl

有什么问题?

0 投票
1 回答
1698 浏览

javascript - 确定具有指定面对模式的相机的设备ID

我正在编写代码以允许页面内select元素选择相机。默认相机应该是“环境”相机,其余的应该在后面列出。

使用以下调用,我可以从适当的面向“环境”的摄像头流式传输视频:

同样,我可以使用以下命令获取可用设备列表:

我存储了deviceId每个选项,并使用它来显示来自该相机的供稿,效果很好。

但是,默认选择的选项不一定是“环境”相机。并且从返回的流对象getUserMedia似乎没有一种简单的方法来确定deviceId提供该流的设备。我似乎也找不到任何其他方法来确定面向“环境”的相机。

getDeviceIdForFacingMode这是不可能的,还是我刚刚错过了某种功能?

0 投票
0 回答
358 浏览

javascript - 打字稿找到后置摄像头的MediaDeviceInfo

我正在使用ZXingScannerComponentAngular。使用此组件,您必须根据它的MediaDeviceInfo. 我当前的代码看起来像这样:

遗憾的是,由于这种情况,此代码不适用于所有设备/back|rear|environment/gi.test(device.label)

是否有可能MediaDeviceInfo在约束的帮助下获得相机{ video: { facingMode: 'environment' }}

0 投票
0 回答
518 浏览

javascript - 媒体流未显示在浏览器中,尽管浏览器似乎访问了摄像头

我在尝试在 HTML/.ejs 页面中显示本地摄像头时遇到问题。我的代码似乎可以正常工作,但是视频未显示在页面上的“视频标签”元素中。奇怪的是浏览器(Chrome)向我指示正在访问相机和麦克风(在浏览器选项卡中带有小相机图标和“点”)。我在这里做错了什么?非常感谢任何帮助。我提前谢谢你。

这是 HTML/EJS:

这是“my_main.js”脚本,它只是访问和(应该)播放本地摄像机视频:

如前所述,浏览器似乎可以访问相机/麦克风,我没有收到任何错误消息。感谢您的任何见解。问候。

0 投票
2 回答
2663 浏览

javascript - 如何获取扬声器输出的媒体流以通过网络传输或记录?

我正在尝试获取扬声器的输出,然后用这个流做任何我想做的事情。

我试图用它来获取扬声器的流:

我希望得到扬声器,但我没有,然后我意识到 getUserMedia 方法只返回输入设备的 MediaStream。有没有办法获得扬声器输出的流?

0 投票
3 回答
235 浏览

javascript - 如何替换 Mozilla 中的 getUserMedia 函数?

我可以使用 getUserMedia() 访问相机,但它只能在本地工作。

我了解由于安全问题,它无法在 Web 服务器上运行。那么如何替换 getUserMedia() ?

0 投票
1 回答
2547 浏览

javascript - 通过`getDisplayMedia`检查浏览器/平台是否支持屏幕捕获

我们可以通过 向屏幕或窗口请求媒体流navigator.mediaDevices.getDisplayMedia()。但是,这会立即提示用户决定使用哪种捕获方式。我需要检查浏览器/平台是否甚至支持屏幕捕获。

当然,也可以检查'getDisplayMedia' in navigator.mediaDevices,但这只是告诉我们浏览器是否支持 API。特别是在 FF 和 Android 上的 Chrome 上,定义了 API,我可以调用getDisplayMedia(),但它总是立即返回NotAllowedError错误(这是可以预料的:根据 caniuse,移动浏览器尚不支持getDisplayMedia。)

接下来,我尝试检查navigator.mediaDevices.getSupportedConstraints(). 但是,我的移动 FF 返回与我的桌面 FF 完全相同的对象。特别navigator.mediaDevices.getSupportedConstraints().mediaSourcetrue在这两种情况下。最后,返回的数据navigator.mediaDevices.enumerateDevices()对我也没有帮助。我只得到一个我无法以任何方式解释的设备和组 ID(对吗?)。

getDisplayMedia是否可以预先检测是否支持屏幕截图?

注意这个问答看起来很相似,但是getUserMedia已经很老了)

0 投票
1 回答
803 浏览

javascript - 手动关闭 getDisplayMedia 的原生屏幕选择器

我可以在不选择要共享的应用程序的情况下关闭 getDisplayMedia({video:true}) 的本机屏幕选择器吗?据我所知,如果正在共享的轨道停止,它会在 track.stop() 上自动关闭。但是,有一个实例,我需要在不按取消或选择要共享的应用程序的情况下关闭本机屏幕选择器。

屏幕选择器图片