集成SDK
所有文档

          实时音视频 RTC

          集成SDK

          准备环境

          本节将介绍如何创建项目,将BRTC SDK集成进你的项目中。

          • Android Studio 3.2 或以上版本,Gradle 4.6或以上版本,编译环境请选择支持java8
          • Android KK(4.4)及以上的设备

          *注:经过验证的开发环境如下:

              ------------------------------------------------------------
              Gradle 4.6
              ------------------------------------------------------------
          
              Groovy: 2.4.12
              Ant: Apache Ant(TM) version 1.9.9 compiled on February 2 2017
              JVM: 1.8.0_192 (Oracle Corporation 25.192-b12)
              OS: Mac OS X 10.13.6 x86_64

          下载SDK

          进入RTC文档中心,点击“下载专区>客户端SDK下载”,即可下载客户端。下载后请校验下载的包md5值与SDK中心里记录的是否一致。

          集成SDK

          创建Android项目,若已有 Android 项目,可以直接集成 SDK
          将SDK包内libbaidurtc.aar 拷贝到项目的libs目录.
          image.png

          添加项目权限

          <manifest xmlns:android="http://schemas.android.com/apk/res/android"
             package="com.baidu.rtc.videoroom">
             
              <uses-feature android:name="android.hardware.camera" />
              <uses-feature android:name="android.hardware.camera.autofocus" />
              <uses-feature android:glEsVersion="0x00020000" android:required="true" />
                  
              <uses-permission android:name="android.permission.CAMERA" />
              <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
              <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
              <uses-permission android:name="android.permission.RECORD_AUDIO" />
              <uses-permission android:name="android.permission.INTERNET" />
              <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
              <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
          ...
          </manifest>

          防止代码混淆

          在 app/proguard-rules.pro 文件中添加如下行,防止代码混淆:

          -keep class com.baidu.** {*;}
          -keep class com.baidu.**
          -keep class org.webrtc.** {*;}
          -keep class org.webrtc.**
          
          -dontwarn com.baidu.rtc.**
          -dontwarn org.webrtc.**
          
          -keep class okhttp3.** { *; }
          -keep interface okhttp3.** { *; }
          -dontwarn okhttp3.**
          
          -keep class okio.** { *; }
          -keep interface okio.** { *; }
          -dontwarn okio.**
          
          -keep class javax.annotation..** {*;}

          项目配置

          在项目的build.gradle中加入如下配置代码, 即可使用。

              android {
                  compileOptions {
                      sourceCompatibility JavaVersion.VERSION_1_8
                      targetCompatibility JavaVersion.VERSION_1_8
                  }
              }
          
              implementation 'com.squareup.okhttp3:okhttp:3.5.0'
              implementation 'com.squareup.okhttp3:logging-interceptor:3.5.0'
              implementation(name: 'libbaidurtc', ext: 'aar')

          实现音视频通话

          本节介绍如何实现音视频通话。音视频通话的API调用时序见下图:

          android_diagram.png

          代码示例

          1.在您的开发项目中导入包

              import com.baidu.rtc.BaiduRtcRoom;

          2.定义 rtc room 变量

              private BaiduRtcRoom mVideoRoom

          3.初始化 sdk 并设置代理。初始化的时候要带上上下文环境 context,appid,token 串,并确定是否开启后下载

              mVideoRoom = BaiduRtcRoom.initWithAppID(this,mAppId,mTokenStr, true);
              mVideoRoom.setBaiduRtcRoomDelegate(this);

          4.音视频参数设置:

              RtcParameterSettings cfg = RtcParameterSettings.getDefaultSettings();
              cfg.VideoResolution = mVideoResolution;
              cfg.VideoFps = 30;
              cfg.AutoPublish = true; //default is true.  for mVideoRoom.startPublish() set to false.
              cfg.AutoSubScribe = true; //default is true.  for mVideoRoom.subscribeStreaming() set to false. 
              mVideoRoom.setParamSettings(cfg,RtcParameterSettings.RtcParamSettingType.RTC_PARAM_SETTINGS_ALL);
          1. 视频显示view设置
              mVideoRoom.setLocalDisplay((RTCVideoView) findViewById(R.id.local_rtc_video_view));
              //单人模式:
              mVideoRoom.setRemoteDisplay((RTCVideoView) findViewById(R.id.remote_rtc_video_view));
              //多人模式:
              RTCVideoView[] vg = new RTCVideoView[5];
              vg[0] = (RTCVideoView) findViewById(R.id.remote_rtc_video_view);
              vg[1] = (RTCVideoView) findViewById(R.id.remote_rtc_video_view1);
              vg[2] = (RTCVideoView) findViewById(R.id.remote_rtc_video_view2);
              vg[3] = (RTCVideoView) findViewById(R.id.remote_rtc_video_view3);
              vg[4] = (RTCVideoView) findViewById(R.id.remote_rtc_video_view4);
              mVideoRoom.setRemoteDisplayGroup(vg);
          1. 登录房间
              mVideoRoom.loginRtcRoomWithRoomName(mRoomName,java.lang.Long.parseLong(mUserId),mUserName);                      
          1. 登出房间,结束音视频通话
              mVideoRoom.logoutRtcRoom();
              mVideoRoom.destroy();   
          上一篇
          概述
          下一篇
          API