问题标签 [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 - MediaDevices 视频调整大小事件
我navigator.mediaDevices.getUserMedia
用于显示用户视频流,并且需要在窗口调整大小事件上更新视频大小。有没有办法在启动后更新该流的宽度/高度约束,以使视频不会被拉伸?
我的初始化代码如下所示:
javascript - 与其他浏览器相比,为什么 ios Safari 上的“mediaDevices.getUserMedia”慢?
我正在开发一个记录用户语音输入的网络应用程序。出于某种原因,在 ios safari 上需要很长时间才能通过 mediaDevices.getUsearMedia 获取用于录制的媒体流。我创建了以下测试页面来测量不同浏览器之间的时间延迟。如果有人能对此有所了解,我将不胜感激。
IOS Safari - 600 到 800 毫秒
Chrome 桌面 - 4 毫秒
Chrome Android - 40 到 60 毫秒
javascript - Javascript navigator.mediaDevices.getUserMedia 将源移动到前面
我正在使用此代码,但是当它获取源代码时,它总是将该窗口移到前面,这有点烦人,但是我在此代码中看不到任何使其移到前面的选项,因此不确定如何防止它。
它将源移动到前面,在我的应用程序前面,并将焦点放在那个窗口而不是我的应用程序上,所以每次我得到源代码时,我都必须再次点击我的应用程序。
编辑:为避免任何混淆,这是来自 Desktop Capturer 应用程序的代码https://github.com/hokein/electron-sample-apps/tree/master/desktop-capture
javascript - Javascript navigator.mediaDevices.getUserMedia 在源代码处获取宽度和高度
我正在使用此代码,但是当它获取源时,高度和宽度由下面代码块中的约束设置,但我想获得视频的实际大小。
生成的捕获图像当然是 990x770,但这会导致图像周围有黑色边框。真实视频的来源是 995x744,但由于给定的约束,它得到了这个带有黑色边框的新尺寸。如果我没有设置任何约束,则会抛出一个错误,说宽度为 0,因此需要设置某种宽度。
即使手动将 995x744 的视频源大小输入到约束中也不起作用,因为它似乎需要比源更大的区域来捕获它。不知道为什么不能完全按原样捕获?也许还有其他我做错的事情可以解决这个问题?
如何在捕获视频时获取视频的大小,以便将约束设置为视频的实际大小?所以捕获的图像与源视频的大小完全相同,没有黑色边框等。
javascript - 如何解决未捕获(承诺),无法在网络摄像头媒体设备上设置属性“innerHTML”为空
我正在研究“ mediaDevices
”以尝试使用 javascript 捕获网络摄像头。下面是我的代码。
我已经在 google chrome 中启用了网络摄像头设置,但我有 ' Cannot set property 'innerHTML' of null
' 代替。我是javascript新手,任何建议或指导将不胜感激,谢谢。
android - 如何使用 mediaDevices.enumerateDevices 获取标签
我正在使用 Angular7 和 cordova 在 ionic 4 应用程序中列出我的手机设备。打电话navigator.mediaDevices.enumerateDevices()
我得到了所有的音频输入和视频输入,但标签是空的。我知道当授予音频和视频权限并且我这样做时,我必须调用此方法。
通过 Android 浏览器连接到 webrtc 示例可以工作,但不能通过 Android WebView。
javascript - navigator.mediaDevices.getUserMedia 错误“DOMException”
已授予麦克风权限。
当我尝试运行此代码时,我收到错误“DOMException”,没有任何详细说明await navigator.mediaDevices.getUserMedia({audio: true})
。
即使在控制台中,当我运行此代码时,我也会navigator.mediaDevices.getUserMedia({audio:true})
.then(stream => video.srcObject = stream)
.catch(e => console.error(e));
收到错误“DOMException”。
为什么会发生这种情况,我需要做什么?
Js、Vue.js、Chrome、MacOS Mojave。
node.js - 如何将我的 cam 流保存在我的服务器实时节点 js 中?
如何在我的节点 js 服务器中实时保存转换为 blob 的流块
客户端.js | 我是我的 cam 流作为我的节点 js 服务器的二进制文件
服务器.js
如何在视频录制完成结束时将传入的 blob 或二进制文件存储到一个视频文件中。
javascript - WebRTC - 可以获得指定的媒体设备信息 - 例如扬声器
我想通过我网站上的扬声器播放指定的声音。我已经通过 mediaDevices.getUserMedia 获得了所有用户设备,就像在这个演示https://webrtc.github.io/samples/src/content/devices/input-output/中一样。
关键是获取扬声器而不是耳机等。 DeviceInfo 对象有 4 个属性:
deviceId - 一些 GUID
组 ID - 其他一些 GUID
kind - 由“audiooutput”过滤
标签 - 名称
有没有机会 100% 确定我们有演讲者?
我已经过滤忽略默认值:
bluetooth - 为什么配对新蓝牙设备时不会触发 MediaDevices.ondevicechange 事件?
我一直在开发一个电话会议网络应用程序,我正在使用 media-stream-api。当有人插入他们的 USB 摄像头时,navigator.mediaDevices.ondevicechange
会触发但不会触发蓝牙设备。
所以当我使用 USB 设备时,以下代码对我有用。
navigator.mediaDevices.addEventListener('devicechange', this.getDeviceList);
有人可以解释为什么上述事件侦听器不会为蓝牙设备触发吗?