webrtc-android

本文详细介绍了基于Google开源的WebRTC项目进行音视频聊天即时通信项目的下载、编译过程,提供了稳定下载环境的建议,以及解决下载失败问题的方法。包括环境准备、下载代码、编译代码的步骤,以及遇到问题的解决策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://blog.youkuaiyun.com/chenyafei617/article/details/38085409

整整快一年没有写博客了,最近基于Google开源的WebRTC项目做了一款音视频聊天的即时通信项目,期间在下载WebRTC代码时就碰到了一些问题,在此以作记录,也希望能够帮助到正在下载编译WebRTC代码中碰到类似问题的童鞋们


1). 准备环境

1. Ubuntu14.04 LTS 系统

2. 准备一个稳定的速度还可以的VPN 或者 VPS ,这个很重要,大家都懂,大部分下载代码失败都是因为访问google服务失败导致的.(本人用的Digital Ocean, 之前试过几个VPN都以失败而告终,蛋都碎了,要么是不稳定,要么速度非常慢,最长一次用了15个小时都没有下载成功)

3. 安装下载$编译webrtc代码所需工具

a. jdk (本人用的  sun jdk1.6.0_45)

jdk下载路径:  http://ghaffarian.net/downloads/Java/JDK/

配置到环境变量中

b. git  ( 版本 1.9.1 ) 

安装:  sudo apt-get install git

c. gclient 

1.安装: git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

2.配置到环境变量中 ,至于怎么配置,不知道的google一下

d. 安装如下工具 ( sudo apt-get install ..) 

g++ (>= 4.2)

python (>= 2.4)

libnss3-dev >= 3.12

libasound2-dev

libpulse-dev

libjpeg62-dev

libxv-dev

libgtk2.0-dev

libexpat1-dev

For 32-bit builds on a 64-bit system:

lib32asound2-dev

ia32-libs


2). 下载代码

1.同步WebRTC代码

1.创建WebRTC目录 

mkdir WebRTC

cd WebRTC

2.初始化gclient

gclient config http://webrtc.googlecode.com/svn/trunk

3. 设计目标系统版本的配置

echo "target_os = ['android', 'unix']" >> .gclient

4. sync代码

gclient sync --nohooks

( 煎熬的一步,我同步下来的代码有7.1G之大,里面包括NDK、SDK等其他tools   之前用VPN都败在这里,后来用VPS,只用了6分多钟,哎,说点什么呢......尼玛,国内程序员就是苦逼)  

注意,若长时间出现  Still working on等信息,请不要中断或者关闭,它依然在运行,如果你这里中断了,那么之前下载的东西会全部删除,然后又得重新sync一遍


3). 编译代码

1.设置编译环境

1. cd trunk

2. source ./build/android/envsetup.sh

3.export GYP_DEFINES="$GYP_DEFINES OS=android"

2. 下载编译所依赖的包或工具,(这里又会下载一大堆东西 如 Ant.)

./build/install-build-deps.sh  (trunk目录下)

3. gclient runhooks --force (下载编译所需的build文件等信息)

4. 编译 ( trunk目录下 )

编译Debug版:  ninja -C out/Debug

编译Release版: ninja -C out/Release


基于以上步骤,如果网络能正常访问google服务的话,一般都不会出现其他的问题,如果真碰到了问题,不要怕,一般根据错误信息就可以知道相应的原因。不知道的google一下

编译成功之后 在 out/Debug 或者 out/Release目录下看到相应的demo安装包  如Debug目录下,其中就有 AppRTCDemo-debug.apk 和 WebRTCDemo-debug.apk


AppRTCDemo程序的代码就再 trunk/talk/examples/android/ 目录下


注意,AppRTCDemo 与 WebRTCDemo的区别

WebRTCDemo只是局域网内的点对点,知道对方的ip和端口号就可以对打,  不需要服务器,  AppTRCDemo是需要服务器的,可以局域网,或者广域网


于2014年7月23日下载的最新代码,没有编译之前的 7.1G,如果有人因为种种原因没能把代码下载下来的,我到时可以共享你一份,因为代码还在自己机子上,到时备份一份到云盘上面


AppRTCDemo工程源码:

点击打开链接


WebRTC源代码:(这里是没有编译之前的代码,编译之后估计9.6G左右,请自行下载代码并编译)

链接: 点击打开链接  密码: vp7b

整整快一年没有写博客了,最近基于Google开源的WebRTC项目做了一款音视频聊天的即时通信项目,期间在下载WebRTC代码时就碰到了一些问题,在此以作记录,也希望能够帮助到正在下载编译WebRTC代码中碰到类似问题的童鞋们


1). 准备环境

1. Ubuntu14.04 LTS 系统

2. 准备一个稳定的速度还可以的VPN 或者 VPS ,这个很重要,大家都懂,大部分下载代码失败都是因为访问google服务失败导致的.(本人用的Digital Ocean, 之前试过几个VPN都以失败而告终,蛋都碎了,要么是不稳定,要么速度非常慢,最长一次用了15个小时都没有下载成功)

3. 安装下载$编译webrtc代码所需工具

a. jdk (本人用的  sun jdk1.6.0_45)

jdk下载路径:  http://ghaffarian.net/downloads/Java/JDK/

配置到环境变量中

b. git  ( 版本 1.9.1 ) 

安装:  sudo apt-get install git

c. gclient 

1.安装: git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

2.配置到环境变量中 ,至于怎么配置,不知道的google一下

d. 安装如下工具 ( sudo apt-get install ..) 

g++ (>= 4.2)

python (>= 2.4)

libnss3-dev >= 3.12

libasound2-dev

libpulse-dev

libjpeg62-dev

libxv-dev

libgtk2.0-dev

libexpat1-dev

For 32-bit builds on a 64-bit system:

lib32asound2-dev

ia32-libs


2). 下载代码

1.同步WebRTC代码

1.创建WebRTC目录 

mkdir WebRTC

cd WebRTC

2.初始化gclient

gclient config http://webrtc.googlecode.com/svn/trunk

3. 设计目标系统版本的配置

echo "target_os = ['android', 'unix']" >> .gclient

4. sync代码

gclient sync --nohooks

( 煎熬的一步,我同步下来的代码有7.1G之大,里面包括NDK、SDK等其他tools   之前用VPN都败在这里,后来用VPS,只用了6分多钟,哎,说点什么呢......尼玛,国内程序员就是苦逼)  

注意,若长时间出现  Still working on等信息,请不要中断或者关闭,它依然在运行,如果你这里中断了,那么之前下载的东西会全部删除,然后又得重新sync一遍


3). 编译代码

1.设置编译环境

1. cd trunk

2. source ./build/android/envsetup.sh

3.export GYP_DEFINES="$GYP_DEFINES OS=android"

2. 下载编译所依赖的包或工具,(这里又会下载一大堆东西 如 Ant.)

./build/install-build-deps.sh  (trunk目录下)

3. gclient runhooks --force (下载编译所需的build文件等信息)

4. 编译 ( trunk目录下 )

编译Debug版:  ninja -C out/Debug

编译Release版: ninja -C out/Release


基于以上步骤,如果网络能正常访问google服务的话,一般都不会出现其他的问题,如果真碰到了问题,不要怕,一般根据错误信息就可以知道相应的原因。不知道的google一下

编译成功之后 在 out/Debug 或者 out/Release目录下看到相应的demo安装包  如Debug目录下,其中就有 AppRTCDemo-debug.apk 和 WebRTCDemo-debug.apk


AppRTCDemo程序的代码就再 trunk/talk/examples/android/ 目录下


注意,AppRTCDemo 与 WebRTCDemo的区别

WebRTCDemo只是局域网内的点对点,知道对方的ip和端口号就可以对打,  不需要服务器,  AppTRCDemo是需要服务器的,可以局域网,或者广域网


于2014年7月23日下载的最新代码,没有编译之前的 7.1G,如果有人因为种种原因没能把代码下载下来的,我到时可以共享你一份,因为代码还在自己机子上,到时备份一份到云盘上面


AppRTCDemo工程源码:

点击打开链接


WebRTC源代码:(这里是没有编译之前的代码,编译之后估计9.6G左右,请自行下载代码并编译)

链接: 点击打开链接  密码: vp7b

### Android 平台上的 WebRTC SDK 安装与使用 #### 一、环境准备 为了在 Android 上设置并使用 WebRTC SDK,开发者需先准备好开发环境。这通常意味着安装最新版本的 Android Studio 和配置好 Gradle 构建工具[^1]。 #### 二、集成 WebRTC 到项目中 对于希望在其应用程序内实现音视频通话功能的应用程序来说,可以考虑采用 Google 提供的官方 WebRTC 库来完成这一目标。通过将依赖项添加到项目的 `build.gradle` 文件里,能够轻松引入该库: ```gradle dependencies { implementation 'org.webrtc:google-webrtc:1.0.+' } ``` 上述命令会自动下载最新的稳定版 WebRTC SDK,并将其加入工程之中。 #### 三、初始化 PeerConnectionFactory 当成功集成了 WebRTC 后,则需要创建一个用于管理所有连接对象的核心类——PeerConnectionFactory 的实例。此过程涉及到了一些必要的组件初始化工作,比如音频设备模块、视频捕捉器等资源的获取与设定。 ```java // 初始化线程策略和其他参数 peerConnectionFactory = new PeerConnectionFactory.InitializationOptions.Builder(context) .setEnableInternalTracer(true) .createInitializationOptions(); PeerConnectionFactory.initialize(peerConnectionFactory); // 创建工厂本身 factory = PeerConnectionFactory.builder() .setVideoEncoderFactory(new DefaultVideoEncoderFactory(rootEglBase.getEglBaseContext(), true, true)) .setVideoDecoderFactory(new DefaultVideoDecoderFactory(rootEglBase.getEglBaseContext())) .createPeerConnectionFactory(); ``` 这段代码展示了如何构建一个完整的 PeerConnectionFactory 实例,它将是后续操作的基础。 #### 四、建立媒体流传输通道 一旦有了 PeerConnectionFactory 对象之后,就可以着手于创建本地和远程端点之间的数据交换路径了。具体而言就是利用 RTCPeerConnection 类来进行实际的数据发送接收任务;与此同时还需要定义 ICE Server 来辅助 NAT 穿透等问题解决。 ```java ArrayList<PeerConnection.IceServer> iceServers = new ArrayList<>(); iceServers.add(PeerConnection.IceServer.builder("stun:stun.l.google.com:19302").createIceServer()); RTCPeerConnection pc = factory.createPeerConnection(iceServers, new CustomPeerConnectionObserver()); ``` 这里给出了简单的例子说明怎样指定 STUN server 地址以及创建一个新的 RTCPeerConnection 连接实体。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值