Hai*_*Ali 6 ios webrtc react-native
我使用react-native-webrtc实现了基于WebRTC的视频通话.它是一对一的呼叫并且工作正常,但是当我断开呼叫并尝试再次重新连接时,重新连接需要花费大量时间并且有时会挂起应用程序.以下是断开连接的代码:
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)
}
}
Run Code Online (Sandbox Code Playgroud)
我认为我没有正确断开视频通话.任何帮助将非常感谢谢谢.
如果您想要真正彻底的关闭,我建议首先停止收发器,以便发送 RTCP BYE:
pc.getTransceivers().forEach((transceiver) => {
transceiver.stop();
});
Run Code Online (Sandbox Code Playgroud)
这应该完全停止远程方接收的媒体轨道:
https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpTransceiver/stop
注意:您可能需要在关闭 RTCPeerConnection 之前给它一点时间,以便 BYE 有时间实际发送(尝试 a setTimeout)。
至于为什么无法重新启动另一个调用,如果不进一步了解代码如何管理此问题,则很难回答。
| 归档时间: |
|
| 查看次数: |
535 次 |
| 最近记录: |