上篇文章对 【流媒体服务器Mediasoup】 源码中使用到的 protoo.websocket 基本API讲解与使用(六),本章节主要对MediaSoup的Android客户端与之前搭建的服务端以及Web端通信,并且实现音视频互通。
在下一篇文章中将对Mediasoup服务端 Socket.io 替换 Protoo WebSocket 的讲解。
MediasoupClient开发文档。
在Android项目中使用libmediasoup 主要有两种方式:
1: Android studio app下的 build.gradle 直接依赖 implementation 'org.mediasoup.droid:mediasoup-client:3.0.4-beta-1'
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'org.mediasoup.droid:mediasoup-client:3.0.4-beta-1'
implementation 'org.java-websocket:Java-WebSocket:1.4.0'
implementation 'androidx.recyclerview:recyclerview:1.2.0-alpha01'
}
之后就可以通过这个库进行Api逻辑开发,具体逻辑在后续博文中也会进行一一介绍,只要WebSocket或者信令打通了,则就可以完完全全能够连到之前博文中部署的服务端进行连接,并且能够与Web端进行音视频通信。
这个方法相对来说适合上层做业务逻辑不用去动底层代码,但是有时候可能需要改动到底层库则会显得比较无力。
要到达商业化软件则还是得来动手编译libMediasoupClient库
2: 自己动手编译库。
由于libmediasoup-client 中需要依赖一些Webrtc的库,在Linux 下进行编译,下载WebRtc源码可能网络会稍微收到一点限制。
具体如何编译这里不做太多详细介绍 可以百度搜索: mediasoupclient webrtc 一些文章会有详细教程。
【官网编译教程:https://mediasoup.org/documentation/v3/libmediasoupclient/installation/】
编译时还是会有很多环境问题需要耐心的去解决如 GCC、G++ 需要的版本 支持C++11及以上特性。
首先编译出libwebrtc.a 最后在编译出libmediasouoClient.a
到目前为止只是编译出了静态库,那么如何在Android上使用静态库进行NDK开发呢?
目前为止网上已经有大神已经把一些基础文件做好了,并写好cmake脚本,具体项目后续上传到文件资源。
(编译出libmediasoupclient.a 也可以自己去写cmake 脚本进行编译出so)
deps 里面是整个源码以及要编译需要依赖的头文件
jni java层调用的业务代码
CMakeList.txt 已经完全写好编译的脚本
以上介绍了2种 使用自己编的依赖库去NDK开发。
那么也可以完全使用Android Studio进行对libwebrtc.a以及 libmediasoupclient.a 的直接编译。
首先可以把Webrtc 以及 MediasoupLib 需要的源码下下来,附上下载地址(里面已经写好了cmake编译静态库的脚本)
整个代码结构如第一节所看到的 放到deps 文件夹目录下。
这边直接给出下载地址,直接下载完导入Module 即可。
下载地址:
未完待续。。。。。。。