问题标签 [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 - 创建录音机时的异步承诺问题
我正在制作录音机,我正在使用 promise async 来学习 async 。
这是我的代码,一次调用可以正常工作,但是一旦我在函数handleAction结束时递归调用函数,它就会开始表现得很奇怪。
我不知道为什么,但代码在 Snippet 上不起作用。
如果我不在handlefunction函数的末尾调用handleAction()函数,它工作正常
javascript - 如何获取当前连接的所有活动视频设备?
我正在尝试获取所有活动的视频设备。但取而代之的是,我收到了之前连接的所有视频设备。我的目标是只获取当前连接并准备好使用的视频设备。
我尝试使用 navigator.mediaDevices.enumerateDevices(); 获取所有活动设备,但我收到了很多不活动的设备。
angular - navigator.mediaDevices 在 Angular 8 应用程序生产版本中不可用
我想navigator.mediaDevices
在我的应用程序中使用,并且在开发中构建所有作品,我可以访问这个对象。当我构建产品并将应用程序上传到服务器时,导航器没有像 mediaDevices 这样的对象。我在任何地方都找不到有关它的任何信息。
我使用角度 8。
我创建了一个基本的测试应用程序,然后创建了一个生产版本并将应用程序上传到我的服务器。在本地主机中,我可以访问navigator.mediaDevices
服务器上的 prod 版本undefined
我的生产应用程序:http: //modecode.pl
有什么问题?
javascript - 确定具有指定面对模式的相机的设备ID
我正在编写代码以允许页面内select
元素选择相机。默认相机应该是“环境”相机,其余的应该在后面列出。
使用以下调用,我可以从适当的面向“环境”的摄像头流式传输视频:
同样,我可以使用以下命令获取可用设备列表:
我存储了deviceId
每个选项,并使用它来显示来自该相机的供稿,效果很好。
但是,默认选择的选项不一定是“环境”相机。并且从返回的流对象getUserMedia
似乎没有一种简单的方法来确定deviceId
提供该流的设备。我似乎也找不到任何其他方法来确定面向“环境”的相机。
getDeviceIdForFacingMode
这是不可能的,还是我刚刚错过了某种功能?
javascript - 打字稿找到后置摄像头的MediaDeviceInfo
我正在使用ZXingScannerComponent
Angular。使用此组件,您必须根据它的MediaDeviceInfo
. 我当前的代码看起来像这样:
遗憾的是,由于这种情况,此代码不适用于所有设备/back|rear|environment/gi.test(device.label)
。
是否有可能MediaDeviceInfo
在约束的帮助下获得相机{ video: { facingMode: 'environment' }}
?
javascript - 媒体流未显示在浏览器中,尽管浏览器似乎访问了摄像头
我在尝试在 HTML/.ejs 页面中显示本地摄像头时遇到问题。我的代码似乎可以正常工作,但是视频未显示在页面上的“视频标签”元素中。奇怪的是浏览器(Chrome)向我指示正在访问相机和麦克风(在浏览器选项卡中带有小相机图标和“点”)。我在这里做错了什么?非常感谢任何帮助。我提前谢谢你。
这是 HTML/EJS:
这是“my_main.js”脚本,它只是访问和(应该)播放本地摄像机视频:
如前所述,浏览器似乎可以访问相机/麦克风,我没有收到任何错误消息。感谢您的任何见解。问候。
javascript - 如何获取扬声器输出的媒体流以通过网络传输或记录?
我正在尝试获取扬声器的输出,然后用这个流做任何我想做的事情。
我试图用它来获取扬声器的流:
我希望得到扬声器,但我没有,然后我意识到 getUserMedia 方法只返回输入设备的 MediaStream。有没有办法获得扬声器输出的流?
javascript - 如何替换 Mozilla 中的 getUserMedia 函数?
我可以使用 getUserMedia() 访问相机,但它只能在本地工作。
我了解由于安全问题,它无法在 Web 服务器上运行。那么如何替换 getUserMedia() ?
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().mediaSource
是true
在这两种情况下。最后,返回的数据navigator.mediaDevices.enumerateDevices()
对我也没有帮助。我只得到一个我无法以任何方式解释的设备和组 ID(对吗?)。
getDisplayMedia
是否可以预先检测是否支持屏幕截图?
(注意:这个问答看起来很相似,但是getUserMedia
已经很老了)