【流媒体Mediasoup】 Android项目中使用 Mediasoup-client 并和Web端 服务端通信 (七)

前言

上篇文章对 【流媒体服务器Mediasoup】 源码中使用到的 protoo.websocket 基本API讲解与使用(六),本章节主要对MediaSoup的Android客户端与之前搭建的服务端以及Web端通信,并且实现音视频互通。

      在下一篇文章中将对Mediasoup服务端 Socket.io 替换 Protoo WebSocket 的讲解。

    MediasoupClient开发文档。

Android中使用Mediasoup+Mediasoup库

      在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)

  【流媒体Mediasoup】 Android项目中使用 Mediasoup-client 并和Web端 服务端通信 (七)_第1张图片                【流媒体Mediasoup】 Android项目中使用 Mediasoup-client 并和Web端 服务端通信 (七)_第2张图片

   deps 里面是整个源码以及要编译需要依赖的头文件

   jni     java层调用的业务代码

   CMakeList.txt     已经完全写好编译的脚本 

Android Studio中对 Mediasoup client  SO库的编译

 

      以上介绍了2种 使用自己编的依赖库去NDK开发。

      那么也可以完全使用Android Studio进行对libwebrtc.a以及 libmediasoupclient.a 的直接编译。

      首先可以把Webrtc 以及 MediasoupLib 需要的源码下下来,附上下载地址(里面已经写好了cmake编译静态库的脚本)

       整个代码结构如第一节所看到的 放到deps 文件夹目录下。

       这边直接给出下载地址,直接下载完导入Module 即可。

      下载地址:

                    

 

介绍几个重要的类

          

                   未完待续。。。。。。。

你可能感兴趣的:(后端开发,MediaSoup,Linux)