我正在使用WebRTC
语音通话,一切正常。当呼叫挂起时,我会在完成呼叫PeerConnection
之前按如下方式处理Activity
。
executor.execute(() -> {
if (peerConnectionFactory != null) {
peerConnectionFactory.dispose();
peerConnectionFactory=null;
}
if (localPeer != null) {
localPeer.dispose();
localPeer=null;
}
});
我正在致命信号-6。我看过what-is-fatal-signal-6。它说不要阻止UI线程,这可能导致SIGABRT,因为操作系统会杀死一个无响应的应用程序。但我在非Ui线程上调用它仍然得到问题。
致命信号6(SIGABRT)位于0x00007e2f(代码= -6),线程32390(worker_thread)
请研究一下。
答案 0 :(得分:1)
在关闭peerConnection
期间,我做错了。正确的关闭连接流程如下。
executor.execute(() -> {
if (peerConnectionFactory != null) {
peerConnectionFactory.stopAecDump();
}
if (localPeer != null) {
localPeer.dispose();
localPeer = null;
}
if (peerConnectionFactory != null) {
peerConnectionFactory.dispose();
peerConnectionFactory = null;
}
PeerConnectionFactory.stopInternalTracingCapture();
PeerConnectionFactory.shutdownInternalTracer();
});