我目前正在开发一个原型,用于记录来自环聊、缩放等第三方服务的视频聊天信息
到目前为止,我无法获得一个简单的事件来使用
navigator.mediaDevices.ondevicechange
登录到控制台。使用最新版本的 Chrome。
https://codepen.io/anon/pen/dqbNKR
我正在使用这支笔,我只想在我的摄像机打开/关闭时登录到控制台。
ondevicechange
是正确的事件吗?
https://developer.mozilla.org/zh-CN/docs/Web/API/MediaDevices/ondevicechange
每当摄像头、麦克风或扬声器等媒体设备连接到系统或从系统中移除时,都会将 devicechange 事件发送到 MediaDevices 实例。这是一个没有添加属性的通用事件。
我知道我也可以查看特定元素的流,但由于它是第 3 方服务,我不一定知道要查看哪些元素。
那么如何在浏览器的第三方应用程序中检测我的网络摄像头何时打开/关闭?
当我输入这个时,我遇到了这个,但需要测试它。
似乎适用于 Chrome 113.0.5672.93 和 FF 113.0.1 的一种方法是监听视频轨道上的
ended
事件:
navigator
.mediaDevices
.getUserMedia({video: {facingMode: "user"}})
.then(stream => {
stream.getVideoTracks().forEach(track => {
track.addEventListener("ended", () => {
console.log("disabled by user");
});
});
const video = document.createElement("video");
video.srcObject = stream;
video.setAttribute("playsinline", true);
video.play();
})
.catch(err => {
// permission denied
console.error(err);
});