原生 Android WebRTC 应用开发
Posted
技术标签:
【中文标题】原生 Android WebRTC 应用开发【英文标题】:Native Android WebRTC application development 【发布时间】:2016-08-18 05:02:57 【问题描述】:我正在尝试使用 WebRTC Native API 创建一个用于视频聊天和消息传递的 android 应用程序。我浏览了几个链接,发现大多数 android 的文档都很模糊,特别是如果你不知道从哪里开始。我点击了以下链接,
https://webrtc.org/native-code/android/#
https://www.chromium.org/developers/how-tos/android-build-instructions
但是上面提到的链接没有任何意义,因为我想开发一个 android 应用程序,这些链接建议下载一个 chromium 然后构建它。我知道最终结果将是一个 apk,但如果我想编写自己的代码怎么办。我也研究了 pubnub 和 OpenTokRTC,但我也不想使用其他人的信令服务(以及 pub 和 sub 键)。我尝试了以下链接,
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 的链接。
谢谢
【问题讨论】:
您能否在不关闭应用程序的情况下断开呼叫? 您找到解决方案了吗?我也有同样的问题 最好的方法可能是构建一个 chromium 以便您可以制作自己的 apk。然后尝试获得免费的信令服务或编写一个。或者去 libjingle,这样你就可以自己制作东西了。 @Ahmed 你能完成这个项目或获得一些参考吗?? 很遗憾没有..... 【参考方案1】:我知道这是一个旧线程,但如果有人仍在寻找使用 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.+'
文档是here。有关如何使用 Android API 的示例,请阅读AppRTC code。
【讨论】:
是获取代码、编译必要的部分,因为它再次指向webrtc.org/native-code/development/prerequisite-sw 和整个 Chromium 构建? 如果您只想使用 Android API,那么您只需将以上几行添加到 build.gradle 即可。除非您有更具体的需求,否则无需自己编译库 @samuelokrent 你知道比他们网站上提供的更简单的教程或示例项目吗?这有点复杂,文档不是很有帮助。我期待了解这个库并对此做一些事情,但不幸的是,缺乏信息。 @shurrok 我在上面分享的 AppRTC 代码是我知道的使用当前 Android API 的唯一正确示例。该库肯定有点复杂,尤其是因为大多数文档都位于native C++ library 中。我强烈建议首先从 AppRTC 复制 webrtc 代码并从那里进行修改。 这是正确答案。此外,可以在here找到一个基于 AppRTC 代码并为 Oreo 更新的示例项目。【参考方案2】:@Mark Sherman 就如何将 libjingle 库编译到您的项目中给出了一个很好的答案。您仍然需要提供自己的信令服务。我发现有帮助的项目包括 Android 客户端和服务如下:
客户 - https://github.com/pchab/AndroidRTC
信令 - https://github.com/pchab/ProjectRTC
您还可以查看爱立信名为 OpenWebRTC 的跨平台扩展 SDK:
http://www.openwebrtc.org/
https://github.com/EricssonResearch/openwebrtc-android-sdk
【讨论】:
【参考方案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 上像这样工作吗??【参考方案4】:我正在使用Mark Sherman 提到的库。 有一篇博文很好的解释了过程中涉及的所有类:tech.appear.in
注意:它没有解释任何关于信令服务器的内容,而是向您介绍了它。
此外,chromium.googlesource.com 上提供的 AppRTCDemo 代码是检查工作流程的可靠资源。它有点复杂,但如果你知道你在寻找什么,它会很有用。
【讨论】:
您好,我想添加用户身份验证以连接到我现有的 WebRTC 服务器。我可以通过网页连接并可以通过它拨打电话。你有任何样品可以帮助像那样工作吗?? @ForGuru 你到底是什么意思?喜欢登录?在这种情况下,请使用数据库。 我有一个基于 FreeSwitch 的 VoIP 服务器正在工作。现在可以使用 SIP 用户 ID 和密码。我们已经在上面安装了 WebRTC 模块,我们可以通过 Chrome 中的 WebRTC 客户端进行连接。我想在 Android AppRTC 示例应用中添加用户名和密码验证以连接到我的服务器 @ForGuru 不属于 webrtc 本身。我建议你创建一个关于它的问题。我帮不了你。【参考方案5】:如果你不想要一个完整的端到端开源实现,我会看看这个库...... https://github.com/nhancv/nc-kurento-android
搭配 Kurento (https://github.com/kurento) 和附带的演示,几乎可以向您展示一切如何在幕后工作。我将此作为我自己的 webrtc 项目的起点,它相对容易理解和彻底,尽管当然还有一个学习曲线。
【讨论】:
以上是关于原生 Android WebRTC 应用开发的主要内容,如果未能解决你的问题,请参考以下文章
是否可以将 Google Hangouts 原生集成到 Android 应用程序中?
将官方 WebRTC SDK 集成到 Android / iOS APP 的文档/示例