WebRTC-编译以及运行iOS的Demo

news/2024/7/10 20:06:45 标签: ffmpeg, xcode, python

1)下载安装ninja(如已安装,则可跳过这一步):

因为Xcode是不能直接编译webRTC的代码的,必须使用ninja。 获得并编译ninja的代码

$ git clone git://github.com/martine/ninja.git
$ cd ninja/
$ ./bootstrap.py
复制代码

上述步骤会在当前目录下产生一个ninja的可运行文件。使用以下命令把它复制到/usrlocal/bin下

$ sudo cp ninja /usr/local/bin/
$ sudo chmod a+rx /usr/local/bin/ninja
复制代码

(2)配置需要的编译的目标环境

cd 至下载好的源代码的src目录下,其实就是主目录就这一个大文件夹。 配置命令,以下命令根据demo的需要情况,只选其中一种执行,根据不同的情况,最后输出的demo也不一样。 32位真机

export GYP_DEFINES="OS=ios target_arch=arm"
export GYP_GENERATOR_FLAGS="output_dir=out_ios"
复制代码

64位真机

export GYP_DEFINES="OS=ios target_arch=arm64"
export GYP_GENERATOR_FLAGS="output_dir=out_ios64"
复制代码

32位模拟器

export GYP_DEFINES="OS=ios target_arch=ia32"
export GYP_GENERATOR_FLAGS="output_dir=out_sim"
复制代码

64位模拟器

export GYP_DEFINES="OS=ios target_arch=x64"
export GYP_GENERATOR_FLAGS="output_dir=out_sim"
OSX
export GYP_DEFINES="OS=mac target_arch=x64"
export GYP_GENERATOR_FLAGS="output_dir=out_mac"
复制代码

执行完上面的配置命令后 执行脚本

webrtc/build/gyp_webrtc.py
复制代码

(3)编译运行demo

这里有两种方式,第一种,使用ninja命令直接编译运行,第二种,生成xcode工程,在xcode里运行,但实际上并不是xcode编译的,而实际上还是运行了第一种的命令脚本。只不过使用xcode可以看见一些源代码,比较清晰些

直接编译运行

ninja -C out_ios64/Debug-iphoneos AppRTCDemo
ninja -C out_ios64/Release-iphoneos AppRTCDemo
ninja -C out_sim/Debug-iphonesimulator AppRTCDemo
复制代码

生成xcode编译运行 还是配置一下环境

export GYP_GENERATOR_FLAGS="xcode_project_version=3.2 xcode_ninja_target_pattern=All_iOS xcode_ninja_executable_target_pattern=AppRTCDemo|libjingle_peerconnection_unittest|libjingle_peerconnection_objc_test output_dir=out_ios"
export GYP_GENERATORS="ninja,xcode-ninja"
复制代码

还是要再执行一下上面那个脚本 webrtc/build/gyp_webrtc.py 执行完后再src目录下就是生成一个all.ninja.xcworkspace工程,打开后会根据你在之前配置的情况生成不同的target,后面就可以command+R运行就好了,上面配置的是真机的话也是可以的。

(4)测试demo

在真机装一个demo(因为真机有摄像头) 用谷歌或火狐浏览器打开 apprtc.appspot.com/ 需要翻墙 两边同时进入同一个房间号即可连接。

转载于:https://juejin.im/post/5b8e20a8e51d4538a108da36


http://www.niftyadmin.cn/n/835248.html

相关文章

FTP服务器及DNS服务器管理

FTP服务器及DNS服务器管理 一.目的: 主要目的是学习FTP服务器和DNS服务器的配置与管理。 二.内容: (1)安装并配置FTP服务器; (2)安装并配置DNS服务器。 三.环境: (1)Windows XP/Windows Server 2003; (2)FileZilla Server&#…

node-sass chromedriver 安装慢的解决方案

yarn npm设置淘宝镜像 yarn config set registry http://registry.npm.taobao.orgnpm config set registry http://registry.npm.taobao.org 复制代码 node-sass设置淘宝镜像 yarn config set sass-binary-site http://npm.taobao.org/mirrors/node-sassnpm config set sass-bi…

Dos Cmd命令整理

Dos Cmd命令整理 1. 一次性注册所有dll(可解决内存不能为read等问题) for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1 2.在cmd下手动注册某dll文件: 1) 按下组合快捷键WINR(WIN键就是键盘上显示WINDOWS标志的按键。位…

Luogu P1117 [NOI2016]优秀的拆分

题目链接 \(Click\) \(Here\) 这题质量不错,就是暴力分有点足\(hhhhhhhh\),整整有\(95\)分。 (搞得我写完暴力都不想写正解直接理解思路之后就直接水过去了\(QwQ\)) (啊好啦好啦水过去是我的锅啦,我自己出来…

004-spring cloud gateway-网关请求处理过程

一、网关请求处理过程 客户端向Spring Cloud Gateway发出请求。如果网关处理程序映射确定请求与路由匹配,则将其发送到网关Web处理程序。此处理程序运行通过特定于请求的过滤器链发送请求。滤波器被虚线划分的原因是滤波器可以在发送代理请求之前或之后执行逻辑。执…

JS每日一题: 小程序页面之间如何通信?

20190227 小程序页面之间如何通信? 首先将通信的模型列举出来, 分为以下几种 兄弟页面间通信父路径页面向子路径页面通信子路径页面向父路径页面通信通信的方式 localStorage 本地存储globalData 全局对象eventBus 发布订阅PageModel 缓存整个pageModel至globalDataLocalStora…

5分钟,关于Python 解包,你需要知道的一切

本文来自云栖社区官方钉群“Python技术进阶”,了解相关信息可以关注“Python技术进阶”。解包在英文里叫做 Unpacking,就是将容器里面的元素逐个取出来(防杠精:此处描述并不严谨,因为容器中的元素并没有发生改变&#…

WeakSet和WeakMap

WeakSet WeakSet和Set都是不重复的值的集合。WeakSet和Set有两点不同。1、WeakSet的成员只能是对象,Set的成员不仅可以是对象还可以是其他类型的值。 2、WeakSet中的对象都是弱引用,垃圾回收机制不考虑WeakSet对该对象的引用,即,如…