所以我正在创建一个视频通话网络应用程序,我想在其中打开/关闭麦克风、视频开/关功能。
navigator.mediaDevices.getUserMedia({
video: true,
audio: true
}).then(stream => {
const video= document.getElementById("my-video");
video.srcObject = stream
video.addEventListener('loadedmetadata', () => {
video.play()
})
看起来像这样。现在我想为我的相机和麦克风创建一个切换功能。我该怎么做
您使用 getUserMedia()
收到
MediaStream。流由多个视频和音频轨道组成。
videoMediaStream.getAudioTracks()
将为您提供音轨列表。
videoMediaStream.getAudioTracks()[0].enabled = false
将使您的麦克风静音。
这是文档提到的有关
enabled
属性的内容:
如果 MediaStreamTrack 表示来自摄像机的视频输入,通过将启用设置为 false 来禁用轨道还会更新设备活动指示器,以显示摄像机当前未在录制或流式传输。例如,当音轨以这种方式静音时,iMac 和 MacBook 电脑中摄像头旁边的绿色“使用中”指示灯会关闭。
您可以使用
getVideoTracks()
对您的相机进行类似操作。
我已经使用 sveltekit 实现了 webrtc 视频通话网络应用程序的工作演示,我添加了一个功能来切换麦克风和网络摄像头。
我有一个更适合我的解决方案。
var vid = document.getElementById("myVideo");
function enableMute() {
vid.muted = true;
}
function disableMute() {
vid.muted = false;
}