【问题标题】:Replacing .addStream() for video WebRTC为视频 WebRTC 替换 .addStream()
【发布时间】:2016-08-01 21:25:25
【问题描述】:

由于 RTCPeerConnection.addStream() 已被弃用,现在如何将视频等媒体流添加到 peerConnection?

这是我目前正在使用的视频流捕获功能。我想看看我是否从我的相机中获得了媒体流,我确实是。但是,如何将流添加到对等连接?

var constraints = {
  audio: false,
  video: true
};

function successCallback(stream) {
  window.stream = stream; // stream available to console
  if (window.URL) {
    document.getElementById('localVid').src = window.URL.createObjectURL(stream);
  } else {
    document.getElementById('localVid').src = stream;
  }
    peerConn.addStream(s); //deprecated so onaddstream is not fired
}

function errorCallback(error) {
  console.log('navigator.getUserMedia error: ', error);
}

我已经成功地为数据通道建立了一个信号系统,现在我正在转向流媒体,但是有限的资源令人沮丧,我需要一些帮助。

【问题讨论】:

  • docs 他们说你应该切换到addTrack() 方法,而不是onaddstream 事件使用ontrack 事件。你试过了吗?
  • webrtc.github.io/samples 是一组样本,由 Google 和 Mozilla 的工作人员不断更新和审查。如果您仍然使用 URL.createURLObject(这不再是规范建议的),您应该看看那里显示的替代方案。
  • “已弃用”并不意味着它今天无法使用,您只会在 Firefox 的 Web 控制台中看到一个友好的警告。你试过了吗?

标签: javascript streaming video-streaming webrtc


【解决方案1】:

Mozilla 决定在 Chrome 尚未实施新的替代 addTrack 的情况下弃用 addStream。 addStream 仍然受支持,我怀疑它是否会被删除,而它仍然是 Chrome 中唯一可用的方法。

请注意,如果远程流连接到对等连接,则会触发 onaddstream,而不是添加本地流。

【讨论】:

  • 技术上,the spec 已弃用 addStream。 Mozilla 只是在努力跟上规范。
  • 我正在使用 chrome 进行开发。这是否意味着尚不支持 addTrack,我仍将不得不使用 aaddStream?
  • @PjRigor 是的。在 Chrome 修复它之前,addStream 仍然是跨浏览器支持最多的 API。或者,您可以尝试使用let pc = new RTCPeerConnection(config); if ("addTrack" in pc) { /* use addTrack */ } 检测支持
猜你喜欢
  • 1970-01-01
  • 2013-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-13
  • 1970-01-01
  • 2021-06-18
相关资源
最近更新 更多