一,本文目的
帮助理解OWT-client-android是如何使用webrtc 代码库的;
帮助理解OWT-client-android如何与OWT Server交互,接口协议的功能实现;
二,功能概述和模块关系
编译OWT android客户端,涉及https://github.com/open-webrtc-toolkit 的3个目录,刚开始容易让人不明白。
owt-deps-webrtc 是OWT项目用到的webrtc源码,目前版本是m88,主要增加支持了h265编码。
编译owt-client-native, 包含自动下载owt-deps-webrtc;
owt-client-native是OWT项目基于webrtc做的二次开发,主要实现了以下功能:
1,实现PeerConnectionChannel,主要封装了webrtc peerconnection
2, 在win和linux, 加入了msdk的外部编解码器,(调用intel GPU编解码器)
3,在win实现了videorendererd3d11, d3d11的render?
4, 实现了会议功能和呼叫,p2psdk/conference, sdk/p2p
5,实现了全部SDK模块的object C封装,sdk/base/objc, sdk/conference/objc, sdk/p2p/objc
编译owt-client-android,需要用到owt-client-native编译输出的so和jar文件;
oem@svr1804://home/oem/git/owt-client-android/dependencies/libwebrtc$ ll
total 8
drwxrwxr-x 2 oem oem 4096 4月 23 22:41 ./
drwxrwxr-x 3 oem oem 4096 4月 19 09:50 ../
lrwxrwxrwx 1 oem oem 49 4月 23 22:41 arm64-v8a -> /home/oem/git/native/src/out/dist/debug/arm64-v8a/
lrwxrwxrwx 1 oem oem 53 4月 23 22:41 libwebrtc.jar -> /home/oem/git/native/src/out/dist/debug/libwebrtc.jar
三,对象创建和初始化连接过程
src/sample/conference/src/main/java/owt/sample/conference/MainActivity.java
protected void onCreate(Bundle savedInstanceState) {
initConferenceClient();
private void initConferenceClient() {
conferenceClient = new ConferenceClient(configuration);
conferenceClient.addObserver(this);
src/sdk/conference/src/main/java/owt/conference/ConferenceClient.java
public ConferenceClient(ConferenceClientConfiguration configuration) {
Connect (join room)启动过程:
src/sample/conference/src/main/java/owt/sample/conference/MainActivity.java
private View.OnClickListener joinRoom = new View.OnClickListener() {
//向服务器获取令牌,例如 uri=https://192.168.1.106:3004/createToken/, 提供username,room参数
String uri = serverUrl + "/createToken/";
String token = HttpUtils.request(uri, "POST", joinBody.toString(), true);
conferenceClient.join(token, new ActionCallback<ConferenceInfo>() {
//创建SignalingChannel实例,保存token, 调用connect(
src/sdk/conference/src/main/java/owt/conference/ConferenceClient.java
public synchronized void join(String token, ActionCallback<Con