【发布时间】:2016-07-11 12:25:46
【问题描述】:
首先,我不清楚引用其他代码的链接是否合适,如果合适,我很抱歉,并想了解在我引用库的这种情况下更合适的机制(这些链接主要作为参考提供给相关方)。
我们有一个适用于 android 的 webrtc 本机应用程序,在调用 peerconnectionfactory 的处置时遇到了困难。当用户选择结束活动会话时,我们有一个清理例程关闭对等连接,然后释放它(尽管关闭并不是真正必要的,因为对 dispose 的调用也会在释放其他资源之前关闭连接 - 例如,例如流和本机观察者 - 参见 libjingle - talk/app/webrtc/java/src/org/webrtc/PeerConnection.java )。在我们的例子中,peerconnectionfactory 的创建是由一个通过 runnable 创建的线程执行的,而工厂的 dispose 是从主 UI 线程执行的。
这是我们遇到问题的地方 - 即,当尝试处理 peerconnectionfactory 时,应用程序崩溃了。
在查看与 webRTC 演示代码相关的帖子时(请参阅 https://chromium.googlesource.com/external/webrtc/+/master/webrtc/examples/androidapp/src/org/appspot/apprtc),他们似乎没有这个问题。
此外,在查看对等连接工厂实现的本机代码时(请参阅https://code.google.com/p/chromium/codesearch#chromium/src/third_party/webrtc/api/peerconnectionfactory.cc 中的 peerconnectionfactory.cc),我们看到对等连接工厂析构函数的工作线程的解包和删除。
此外,在查看 chromium webrtc 问题列表时,我们发现有几个问题(例如,https://bugs.chromium.org/p/webrtc/issues/detail?id=3100 或 4196)导致人们认为需要特别注意在以下情况下使用的线程/循环模型:使用 peerconnectionfactory。
所以,我的基本问题是,从与处理它的线程不同的线程创建 peerconnectionfactory 时是否存在问题,以及管理 peerconnectionfactory 是否存在一组特定的线程/循环要求。
谢谢,
【问题讨论】:
标签: java android multithreading webrtc libjingle