代码之家  ›  专栏  ›  技术社区  ›  Diaz diaz

处理PeerConnection WebRTC期间出现致命信号6

  •  0
  • Diaz diaz  · 技术社区  · 8 年前

    我正在使用 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线程上调用它,仍然会遇到问题。

    0x00007e2f处的致命信号6(SIGABRT)(代码=-6),线程32390(worker\u线程)

    请调查这个问题。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Diaz diaz    8 年前

    我在关门的时候做错了 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();
            });