本地化Android WebRTC应用程序开发

31

我正在尝试使用WebRTC Native APIs创建一个用于视频聊天和消息传递的Android应用程序。经过多次搜索,我发现大多数Android文档都很模糊,特别是如果你不知道从哪里开始。我按照以下链接操作:

https://webrtc.org/native-code/android/#

https://www.chromium.org/developers/how-tos/android-build-instructions

但是上述链接没有任何意义,因为我想开发一个Android应用程序,这些链接建议下载Chromium然后进行构建。我知道最终结果将是一个APK文件,但如果我想自己编写代码怎么办?我还查看了PubNub和OpenTokRTC,但我也不想使用其他人的信令服务(连同发布和订阅密钥)。我尝试了以下链接:

https://github.com/pristineio/webrtc-build-scripts

但对于一个WebRTC新手来说,这似乎有点不完整,因为它建议通过以下命令获取WebRTC:

# Pull WebRTC
get_webrtc

最后我尝试了以下链接:

http://simonguest.com/2013/08/06/building-a-webrtc-client-for-android/

但是这个教程的问题是没有更新。Libjingle现在已经移到Github上了,我不知道如何使用gclient从Github获取libjingle。

我的挣扎已经成为了一场灾难。有没有人能够帮我找到更新的文档或教程,以便我能够理解如何使用webRTC本机API开发应用程序?请不要给我任何关于OpenTokRtc或PubNub的链接。

谢谢


你找到解决方案了吗?我也遇到了同样的问题。 - Subkhan Sarif
最好的方法可能是构建一个Chromium,这样你就可以制作自己的apk。然后尝试获取免费的信令服务或编写一个。或者选择libjingle,这样你就可以制作自己的东西。 - Ahmed
很遗憾,没有…… - Ahmed
嗨,Ahmed,请问你能分享一下最终是如何解决这个问题的吗? - Mushfiqur Rahman
你想要实现什么目标? - Ahmed
显示剩余4条评论
5个回答

12

我知道这是一个旧的帖子,但是如果有人仍在寻找使用libjingle构建Android应用程序的方法,最近几个月已经发布了预构建库,可以非常简单地将其作为依赖项添加到Android Studio项目中,如下所示:

dependencies {
    compile 'org.webrtc:google-webrtc:1.0.+'
}

在Android Studio 2或Android Studio 3中:

dependencies {
    implementation 'org.webrtc:google-webrtc:1.0.+'
}

文档在这里。想了解如何使用Android API的示例,请阅读AppRTC代码


获取代码和编译部分是否必要,因为它再次指向https://webrtc.org/native-code/development/prerequisite-sw/和整个Chromium构建? - Chakradhar K
1
如果您只想使用Android API,则将上述行添加到build.gradle即可。除非您有更具体的需求,否则无需自己编译库。 - samuelokrent
1
@samuelokrent,你知道有没有比他们网站上提供的更简单的教程或示例项目吗?它有点复杂,文档也不是很有帮助。我希望能够理解这个库并用它做些事情,但不幸的是,信息不足。 - shurrok
@shurrok 我分享的AppRTC代码是我所知道的唯一正确使用当前Android API的示例。该库确实有点复杂,特别是因为大部分文档都在本地C++库中。我强烈建议从AppRTC中复制webrtc代码并进行修改。 - samuelokrent
3
这是正确的答案。此外,基于AppRTC代码并针对Oreo进行更新的示例项目可以在这里找到:https://github.com/duttaime/webrtcandroid。 - user2230793
该库仅用于开发目的。 - Praveena

5

3
我正在使用Mark Sherman提到的库。有一篇博客文章非常好地解释了涉及到的所有类:tech.appear.in注意:它没有解释信令服务器,而是介绍了它。
此外,chromium.googlesource.com上可用的AppRTCDemo代码可以成为检查工作流程的好资源。它有点复杂,但如果你知道你要找什么,它会很有用。

嗨,我想要添加用户认证来连接到我的现有WebRTC服务器。我能够通过网页连接并进行通话。你有任何示例可以帮助我实现这样的功能吗? - For Guru
@ForGuru 你的意思是什么?像登录这样的吗?如果是的话,可以使用数据库来实现。 - Samuel Méndez
我有一个基于FreeSwitch的VoIP服务器正在运行。现在它可以使用SIP用户ID和密码进行连接。我们已经在上面安装了WebRTC模块,并且可以通过Chrome中的WebRTC客户端连接。我想在Android AppRTC示例应用中添加用户名和密码验证,以便连接到我的服务器。 - For Guru
@ForGuru 不是 WebRTC 本身的一部分。我建议你提出一个相关问题。我无法帮助你。 - Samuel Méndez

3

我和你一样,也在寻找如何将自己的信令服务集成到libjingle中,但似乎没有教程涉及这方面。

如果你使用Android Studio进行开发,应该在build.gradle脚本的dependencies部分包含compile 'io.pristine:libjingle:9694@aar'

dependencies {
   compile fileTree(dir: 'libs', include: ['*.jar'])
   compile 'io.pristine:libjingle:9694@aar'
   // the rest of your code
}

这应该将libjingle添加到您的项目中。


嗨,我想要添加用户认证来连接到我的现有WebRTC服务器。我能够通过网页连接并通过它进行通话。你有任何示例可以帮助我在Android上实现这样的功能吗? - For Guru

1
如果您想要一个完整的端到端开源实现,我建议您查看这个库...https://github.com/nhancv/nc-kurento-android。与Kurento(https://github.com/kurento)配对并包含演示,几乎可以展示一切如何在幕后运作。我将其用作自己webrtc项目的起点,相对容易跟踪和全面,当然仍然会有一个学习曲线。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接