Android WebRTC 崩溃

标签 android webrtc

我正尝试通过按后退按钮断开通话,但应用程序因此错误而崩溃。我在 Eclipse 上使用 Pierre Chabardes 的 AndroidRTC 应用程序。 https://github.com/pchab/AndroidRTC

我还通过 linux 机器构建了最新的 WebRTC libjingle_peerconnection_so.so & libjingle_peerconnection.jar

04-10 12:20:16.695: E/rtc(29060): #
04-10 12:20:16.695: E/rtc(29060): # Fatal error in ../../talk/app/webrtc/java/jni/peerconnection_jni.cc, line 926
04-10 12:20:16.695: E/rtc(29060): # Check failed: 0 == (reinterpret_cast<MediaSourceInterface*>(j_p))->Release() (0 vs. 1)
04-10 12:20:16.695: E/rtc(29060): # Unexpected refcount.
04-10 12:20:16.695: E/rtc(29060): #
04-10 12:20:16.695: A/libc(29060): Fatal signal 6 (SIGABRT), code -6 in tid 29060 

最佳答案

经过几个小时的测试,我发现最初创建的Socket在onDestroy()方法中没有正常关闭。

那里是这样的:

public void onDestroy() {
    for (Peer peer : peers.values()) {
        peer.pc.dispose();
    }
    videoSource.dispose();
    factory.dispose();
    client.disconnect();
    client.close();
}

它需要通过这种方式关闭:

public void onDestroy() {
    for (Peer peer : peers.values()) {
        peer.pc.dispose();
    }
    videoSource.dispose();
    factory.dispose();
    client.off();<---- You need to turn OFF and then disconnect  and then close it.
    client.disconnect();
    client.close();
}

关于Android WebRTC 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29566419/

相关文章:

android - Paypal 服务未启动(沙盒帐户),出现以下错误

android - 如何使用 Ant 构建 Android 项目? (智能集成开发环境)

webrtc - 如何将使用 WebRTC 录制的音频流传递到 Google Speech api 以进行实时转录?

android - Websockets 上的视频流

webrtc - 了解 WebRTC 中的 SFU、TURN 服务器

python - 断言错误: No api proxy found for service "xmpp"

webrtc - Agora WebSDK-NG 音频可视化工具

android - java.lang.IllegalStateException : Couldn't read row x col x from CursorWindow. 确保正确初始化 Cursor.contacts

android - AltBeacon 搜索 GATT 服务

javascript - Android应用程序中的音频无法播放