将一个libjitsi依赖项添加到Android项目是否可行?

我实际上正在开发一个 Android VOIP应用程序,让用户可以与其他用户建立会议.我的约束是避免使用像SIP服务器这样的服务器来实现它,如果我必须使用外部库,它应该在LGPL许可下.我使用Android RTP堆栈的 AudioGroupAudioStream类以对等方式成功完成了它.

我的问题发生在3个同行的会议上.使用AudioGroup,我启用了MODE_ECHO_SUPPRESSION,但结果很差,我可以在3秒后听到回声.我得出结论,Android RTP堆栈不​​是我的问题的一个很好的解决方案,因为使用AudioGroup使得无法调整声音和回声抑制似乎功能很糟糕.

通过测试VOIP应用程序,我发现了许多工作非常精细,更准确地说是Jitsi(homepage),它使用基于本机代码的java库来获取LGPL许可下的RTP内容.我试图按照this tutorial使用libjitsi,但不幸的是它给了我一个错误……这时,我不确定是否可以在Android项目中使用Libjitsi,因为它通常用在Java项目中.

步骤我去了错误(使用Android Studio)

>我已经从sources中包含的build.xml编译了libjitsi,并将生成的jar直接放在我项目的lib /文件夹中.
>我在build.gradle文件添加了对libjitsi.jar的依赖
>在活动的onCreate方法调用静态方法Libjitsi.start()

错误日志

01-02 17:06:48.304 1523-1523/com.test.example I/LibJitsi﹕
Failed to initialize LibJitsi backend
org.jitsi.impl.libjitsi.LibJitsiOsgiImpl. (Exception stack trace
follows.) Will try an alternative.
java.lang.NoClassDefFoundError: org.osgi.framework.FrameworkUtil
at org.jitsi.impl.libjitsi.LibJitsiOsgiImpl.(LibJitsiOsgiImpl.java:34)
at java.lang.class.newInstanceImpl(Native Method)
at java.lang.class.newInstance(Class.java:1319)
at org.jitsi.service.libjitsi.LibJitsi.start(LibJitsi.java:227)
at org.jitsi.service.libjitsi.LibJitsi.start(LibJitsi.java:171)
at com.test.example.ui.createconf.CreateConfActivity.onCreate(CreateConfActivity.java:76)
at android.app.Activity.performCreate(Activity.java:4465)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:1931)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
at android.app.ActivityThread.access$600(ActivityThread.java:127)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4441)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native

现在,如果有人已经尝试在AndroidProject上使用libjitsi,或者如果你知道它不可行,那么如果你与我分享你的经验,我真的很感激.

谢谢

解决方法

是的libjitsi依赖可以添加到android,你可以尝试 jitsi-android这是 Jitsi项目的Android端口.我试图运行他们的示例应用程序,它编译得很好.

但是,我已经在Android in another answer上共享了5个不同的VOIP调用库,你可以看看并尝试它们.

恩乔伊!

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...