首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用simple-peer添加和删除视频曲目

如何使用simple-peer添加和删除视频曲目
EN

Stack Overflow用户
提问于 2021-03-21 18:51:29
回答 1查看 169关注 0票数 1

我在我的视频聊天web应用程序中使用simple-peer。如果两个用户都处于音频呼叫中,我如何添加视频轨道以及如何禁用它。如果我使用replaceTrack,我会再次遇到这个问题

代码语言:javascript
复制
error Error: [object RTCErrorEvent]
at makeError (index.js:17)
at RTCDataChannel._channel.onerror (index.js:490)

我正在显示一个个人资料图片,如果视频没有为用户启用。如果启用了视频,我想将此图片替换为视频,并为通话中的所有人替换它

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-06 07:10:31

如果两个用户都只启用了音频,流只包含音频曲目,所以我们可以在这里添加黑色空间(结束的视频曲目).so我们可以很容易地解决这个问题,更多信息请访问此https://blog.mozilla.org/webrtc/warm-up-with-replacetrack/

以上链接中的代码

代码语言:javascript
复制
    let silence = () => {
      let ctx = new AudioContext(), oscillator = ctx.createOscillator();
      let dst = oscillator.connect(ctx.createMediaStreamDestination());
      oscillator.start();
      return Object.assign(dst.stream.getAudioTracks()[0], {enabled: false});
    }
    
    let black = ({width = 640, height = 480} = {}) => {
      let canvas = Object.assign(document.createElement("canvas"), {width, height});
      canvas.getContext('2d').fillRect(0, 0, width, height);
      let stream = canvas.captureStream();
      return Object.assign(stream.getVideoTracks()[0], {enabled: false});
    }
    
    let blackSilence = (...args) => new MediaStream([black(...args), silence()]);
    
    video.srcObject = blackSilence();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66731426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档