gpt4 book ai didi

android - 断开连接时 Webrtc 对等连接中的随机 native 崩溃

转载 作者:行者123 更新时间:2023-11-29 19:13:49 46 4
gpt4 key购买 nike

我正在使用 webrtc 进行视频通话。我的用例是这样的,我一个接一个地连接到队列中的用户。所以连接到 user1,结束与 user1 的连接,然后连接到 user2,依此类推。

有时在与用户断开连接并处理对等连接时,我会遇到 native 崩溃

E/rtc(6882): #\
05-26 17:30:44.374: E/rtc(6882): # Fatal error in ../../webrtc/sdk/android/src/jni/peerconnection_jni.cc, line 1074\
05-26 17:30:44.374: E/rtc(6882): # last system error: 17\
05-26 17:30:44.374: E/rtc(6882): # Check failed: 0 == (reinterpret_cast<PeerConnectionInterface*>(j_p))->Release() (0 vs. 1)\
05-26 17:30:44.374: E/rtc(6882): # Unexpected refcount.\
05-26 17:30:44.374: E/rtc(6882): #\

这次崩溃非常随机地发生,据我猜测,在处理时某些东西保留了对 peerconnection 的引用。

这是我处理对等连接的代码,我正在为新连接重用本地媒体流。

videoCapturer.stopCapture();
if (peerConnection != null) {
peerConnection.close();
peerConnection.removeStream(localMediaStream);
peerConnection.dispose();
peerConnection = null;
}

上面的代码 fragment 是处理对等连接的正确方法吗?这次崩溃的随机性可能是什么原因?泄漏的引用是在 Java 层还是在 native 层?

最佳答案

如果您从同一个工厂创建多个 peerConnections 并处理它们,这些崩溃是预料之中的。

解决方法:停止处理 peerConnection,如 peerConnection.dispose();会破坏本地流等
只需使用 peerConnection.close();并使用 peerConnection.dispose();仅用于最终 peerConnection对象。

为错误加注星标 75437691对于这方面的更新

关于android - 断开连接时 Webrtc 对等连接中的随机 native 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44261220/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com