学习WebRTC避免不了自己弄个工程,写点代码调用调用WebRTC。
常见的方式有三种:
- 自己创建工程,把WebRTC当做库使用。
- 抽取代码,构建自己工程。这种方式对于小工程还可以,若是稍大些工程,关联的代码太多,抽取难度太大。
- 在源代码的工程基础上,添加新的工程。这种方式实现简单,若只是做些简单的调用,还是很方便的。
下面介绍一下如何在原有工程基础上,添加新的工程。
创建工程所在的文件夹
先找到WebRTC经典示例peerconnection所在的目录src\examples,在该目录下创建自己工程的目录webrtclearn
,之后自己添加的文件都放在这个目录中。
创建自己的工程
找到src\examples\BUILD.gn,在这个文件675
行左右,添加如下内容。
...
if (is_linux || is_win) {
#以下是新添加的内容
#################################################
rtc_executable("webrtc_learn"){
testonly = true
sources = [
#自己添加的工程文件
]
deps = [
#依赖的库
]
}
#################################################
rtc_executable("peerconnection_client") {
testonly = true
sources = [
"peerconnection/client/conductor.cc",
...
重启VS,会多出一个webrtc_learn
工程。
在Ubuntu上还需要在src\examples\BUILD.gn中53
行左右,添加如下内容:
...
if (is_linux || is_win) {
deps += [
":peerconnection_server",
":relayserver",
":stunserver",
":turnserver",
":webrtc_learn", #新添加的内容
]
if (current_os != "winuwp") {
deps += [ ":peerconnection_client" ]
}
...
添加自己的文件和依赖库
webrtclearn
目录中,创建main.cc文件。src\examples\BUILD.gn文件中,修改刚才添加的内容。
rtc_executable("webrtc_learn"){
testonly = true
sources = [
"webrtclearn/main.cc" #工程的文件
]
deps = [
"../rtc_base:rtc_base" #依赖的库
]
}
sources:自己添加的文件记录在这里
deps:添加依赖库
运行工程
写个Demo测试是否能调用成功。在webrtclearn
目录main.cc文件添加如下代码:
#include "rtc_base/logging.h"
int main()
{
RTC_LOG(INFO) << "hello world";
return 0;
}
在Windows上运行结果:
在Ubuntu上运行结果:
这个示例调用了WebRTC的日志库,向标准错误(stderr)输出日志。
小结
本文介绍如何在Windows上创建VS工程,调用WebRTC代码。在Ubuntu上创建方法基本上是一样的,不一样的地方文中已经指出。