技术标签: webrtc/speex
最近基于Google开源的WebRTC项目做了一款音视频聊天的即时通信项目,期间在下载WebRTC代码时就碰到了一些问题,在此以作记录,也希望能够帮助到正在下载编译WebRTC代码中碰到类似问题的童鞋们。
1). 准备环境
1. Ubuntu 14.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是需要服务器的,可以局域网,或者广域网
AppRTCDemo工程源码:
------------------------------------------分割线------------------------------------------
免费下载地址在 http://linux.linuxidc.com/
用户名与密码都是www.linuxidc.com
具体下载目录在 /2014年资料/10月/15日/Ubuntu 14.04编译WebRTC For Android代码
下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm
------------------------------------------分割线------------------------------------------
WebRTC源代码:(这里是没有编译之前的代码,编译之后估计9.6G左右,请自行下载代码并编译),于2014年7月23日下载的最新代码,没有编译之前的 7.1G,如果有人因为种种原因没能把代码下载下来的,备份一份到云盘上面
链接: 点击打开链接 密码: j5s4
昨天在项目中遇到一个问题,按钮bind了Command后,利用CanExecute控制它的是否可点击。结果却在初始化viewmodel的时候执行了一次CanExecute,之后一直不触发,按钮的可用性状态也一直不改变。 public DelegateCommand NewCommand { get; set; } public DelegateCommand CheckComma...
菜鸟教程(runoob.com)function greeting(){alert("Welcome " + document.forms["frm1"]["fname"].value + "!")}你的名字是:必须选中同意选项才可以提交jsp——js事件修改属性样式的两种方法(直接赋值、修改属性)、验证表单符合某要求、阻止表单提交、告诉浏览器不要缓存代码 JQuery阻止表单提交的方法总结 - ...
本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置,即将a中的数据由(a0 a1 ⋯an−1 )变换为(am= ⋯an−1 a0 a1 ⋯am−1 )(除了a之外都是下标)(最前面的m个数循环移至最后面的m个位置)。如果还需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:输入第1行给出正整数n(≤100)和整数m(≥0);第2行给出n个整_croc51数组左移
FRRouting 简介FRRouting (FRR) is a free and open source Internet routing protocol suite for Linux and Unix platforms. It implements BGP, OSPF, RIP, IS-IS, PIM, LDP, BFD, Babel, PBR, OpenFabric and VRRP, with alpha support for EIGRP and NHRP.官方网站链接。 如何移植 FR_frrouting
ReporteRs包可以创建word,ppt,html文档。它可以格式化R的输出:如可编辑的矢量图,复杂的表格报告功能,企业模板文档的重用(.docx和.pptx)。它是一个很好的自动化报告工具,并且不需要你安装微软的任何产品。本文演示的是如何用它来制作PPT文档。入门创建一个pptx对象通过pptx函数创建的一个R对象可以表示一个PPT文档。它包含两个参数:标题和模板文件。如果未指定,模板文件在..._r中的add_slide函数
导读DISTINCT 实际上和 GROUP BY 操作的实现非常相似,只不过是在 GROUP BY 之后的每组中只取出一条记录而已。所以,DISTINCT 的实现和 GROUP BY 的实现也基本差不多,没有太大的区别。同样可以通过松散索引扫描或者是紧凑索引扫描来实现,当然,在无法仅仅使用索引即能完成 DISTINCT 的时候,MySQL 只能通过临时表来完成。但是,和 GROUP BY 有一点差..._mysql去重语法
WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaSscript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。一个捷克公司开发的,功能虽然很强大,但UI貌似一直不是东欧人的强项。WebStorm默认的编辑器颜_webstorm svelte高亮
文章目录1.官网1.官网https://docs.oracle.com/javase/8/index.htmlhttps://docs.oracle.com/javase/8/docs/index.html1.JDK,JRE,JVM 从上面可以看出是一个包含关系_jdk介绍
一、JVM概述1、为什么要调优1、防止出现OOM2、解决OOM问题3、减少Full GC频率4、提高系统稳定性2、性能优化的步骤1)性能监控主要监控GC频率、CPU、OOM问题、内存泄露、死锁、程序响应时间等问题;2)性能分析1、使用http://gceasy.io来分析GC日志2、灵活使用命令行工具:jps、jstack、jstat、jmap、jinfo等3、导出dump文件,使用内存分析工具分析4、使用Arthas、jconsole、JVisualVM等工具实事查看JVM状态_中间件性能调优
比较器的排序原理,相当于二叉树的排序算法,使用第一个元素作为跟节点,如果后面的内容比跟节点要小,则放在左子树,如果要大,就放在右子树。然后按照中序排序取出来。java.util.Comparator接口public interface Comparable<T>{ public int compareTo(T o);}//返回值int型,1表示大于,-1表示小于,..._compare(t o1, t o2)
这个比较好玩,或许有时能用上。只需在浏览器地址栏里输入一行代码:data:text/html, 为什么它能奏效?这是用了数据URI的格式(Data URI’s format),并告诉浏览器渲染 HTML。不过 contenteditable是 HTML5 的一个属性,所以这个小技巧只能用于支持该属性的现代浏览器。(IE 8–就不行了 )有趣的内容还在下面不少程序员受 Jose 的启发,开始对这行代...
方法一注:此方法摘自百度经验创建节点,加入 Raw Image, Video Player, Play Video On UGUI,拖入资源,运行直接看得到效果PlayVideoOnUGUI.cs脚本using UnityEngine;using UnityEngine.Video;using UnityEngine.UI;public class PlayVideoOnUG..._videoplayer外部加载