首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用react-native-webrtc断开视频呼叫

使用react-native-webrtc断开视频呼叫
EN

Stack Overflow用户
提问于 2018-09-20 17:58:38
回答 1查看 1.8K关注 0票数 9

这是一个一对一的呼叫,工作正常,但当我断开呼叫并尝试重新连接时,重新连接会花费很多时间,有时会挂起应用程序。下面是断开连接的代码:

代码语言:javascript
复制
function stopLocalStream() {
  if (friends != null) {
    friends.forEach(friend => {
      leave(friend.socketId)
    })
  }
  if (localStream != null) {
    localStream.getTracks().forEach(t => t.stop())
    localStream.release()
    localStream = null
  }
}

function leave(socketId) {
  console.log('leave', socketId)
  var pc = peerConnections[socketId]
  if (pc) {
    pc.close()
  }
  delete peerConnections[socketId]
  if (onFriendLeftCallback != null) {
    onFriendLeftCallback(socketId)
  }
}

我想我没有正确断开视频通话。任何帮助都将非常感谢谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-09-25 15:47:41

如果你想要一个真正干净的关机,我建议首先停止收发器,这样RTCP BYE就会被发送:

代码语言:javascript
复制
pc.getTransceivers().forEach((transceiver) => {
    transceiver.stop();
});

这应该会干净利落地停止远程方接收的媒体轨道:

https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpTransceiver/stop

注意:您可能需要在关闭RTCPeerConnection之前给它一点时间,以便这个BYE有时间实际发送(尝试setTimeout)。

至于为什么无法重新启动另一个调用,如果不进一步了解代码是如何管理的,就很难回答这个问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52422423

复制
相关文章

相似问题

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