Reactjs JSSIP如何在音频呼叫和视频呼叫之间切换
我是JSSIP的新手。在正在进行的通话中,我需要将音频通话切换为视频通话Reactjs JSSIP如何在音频呼叫和视频呼叫之间切换,reactjs,electron,webrtc,jssip,Reactjs,Electron,Webrtc,Jssip,我是JSSIP的新手。在正在进行的通话中,我需要将音频通话切换为视频通话 const session = userAgent.call(destinationNumber, { mediaConstraints: { audio: true, video: false }, pcConfig: { iceServers: [{ urls: Config.STUN_SERVER }] } });
const session = userAgent.call(destinationNumber, {
mediaConstraints: {
audio: true,
video: false
},
pcConfig: {
iceServers: [{ urls: Config.STUN_SERVER }]
}
});
这就是我发起音频呼叫的方式。如何在通话之间切换到视频通话?您可以使用视频进行技巧和启动通话,但不是播放真正的视频曲目,而是播放一些虚拟的“无声”视频曲目:
function createSilentVideoTrack() {
const canvas = document.createElement("canvas");
canvas.width = 50;
canvas.height = 30;
canvas.getContext("2d").fillRect(0, 0, canvas.width, canvas.height);
animateCanvas(canvas);
const stream = canvas.captureStream(1);
const tracks = stream.getTracks();
const videoTrack = tracks[0];
return videoTrack;
}
当您需要启用视频时,只需将虚拟视频轨迹替换为真实视频轨迹:
navigator.mediaDevices.getUserMedia(constraints).getVideoTracks()[0].then(track => {
connection.getSenders().filter(sender => sender.track !== null && sender.track.kind === "video").forEach(sender => {
sender.replaceTrack(track);
});