快速开始

前提条件

  • Android Sdk版本最低为19。
  • Android Studio版本最低为3.0。

运行demo

  • 下载无延迟直播Android端SDK压缩包,下载完成后解压缩即可。
  • 压缩包的目录结构

  • 将示例项目TangRTC_SDK_for_Android\rtc\demo\TangRTC_android_demo导入Android Studio中,编译和运行项目。
  • 运行起demo后,在图2-2箭头指向处填入从全时获取的拉流地址,就可以点击播放体验示例demo了。
  • 更换拉流地址,需要先点击停止按键,然后更换拉流地址,再点击播放按键。

 

集成SDK

创建工程(开发环境建立)

  • 导入文件

       下载解压云会议SDK的压缩包以后,将TangRTC_SDK_for_Android\rtc\sdk目录下的所有so库和jar包拷贝到您的项目中。

        导入您项目的路径类似于图3-1中的libs目录下。

  • 添加依赖

       如图3-2红箭头1指向的build.gradle添加以下依赖,这些依赖是全时无延迟直播SDK必须要依赖的库。

// 全时基础库
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
// Android相关基础库
testImplementation rootProject.ext.support["junit"]
implementation rootProject.ext.support["design"]
implementation rootProject.ext.support["recyclerview-v7"]
implementation rootProject.ext.dependencies["rxeasyhttp"]
implementation rootProject.ext.support["constraint-layout"]
implementation rootProject.ext.dependencies["xui"]
implementation rootProject.ext.dependencies["hawk"]
implementation rootProject.ext.dependencies["xutil-core"]
implementation rootProject.ext.dependencies["xutil-sub"]
implementation rootProject.ext.dependencies["baseadapterhelper"]
implementation rootProject.ext.dependencies["butterknife"]
implementation 'com.bytedance.boost_multidex:boost_multidex:1.0.1'
implementation rootProject.ext.dependencies["glide"]
annotationProcessor rootProject.ext.dependencies["butterknife-compiler"]
  • 添加声明

       如图3-2红箭头指2向的AndroidManifest.xml文件中添加以下权限声明

//将com.tangsdk.tangrtc替换成您的包名

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.tangsdk.tangrtc">

<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="27" />

<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" tools:ignore="ProtectedPermissions" />
  • 添加混淆

       如图3-2红箭头3指向的 app/proguard-rules.pro 文件中添加如下行,防止代码混淆:(按模块分拆)

       -keep class com.tangsdk.{*;} -keep class org.webrtc.{*;}。

实现功能

  • 初始化

      在工程的Application中进行初始化操作,注意初始化操作必须在主线程进行

mRtcManager = TangRTCEngineManager.createTangRTCEngine(Context context,String appId, ITangRTCEngineCallBack callBack);
  • 拉流

      将获取到的channelId,调用joinChannel接口启动拉流流程。

mRtcManager.joinChannel(String token, String channelId, int uid, ChannelMediaOptions options);
  • 运行

      将程序运行在Android真机设备,部分模拟器可能存在功能或性能上的缺陷,建议使用真机体验。