跳到主要内容

快速集成

本文介绍快速地将摩云开放平台Android客户端API(Android 版本)集成到项目中。

开发环境要求

  • Android Studio 4.0 或以上版本
  • Android SDK API 等级 26 或以上
  • Android 4.4 或以上版本的设备
  • 有效的AppKey,AppSecret

创建Android 项目

  1. 打开 Android Studio,点击 Start a new Android Studio project。
  2. 在 Select a Project Template 界面,选择 Phone and Tablet > Empty Activity,然后点击 Next。
  3. 在 Configure Your Project 界面,依次填入以下内容:
  4. Name:你的 Android 项目名称,如 Hellokedacom
  5. Package name:你的项目包的名称,如 com.kedacom.Hellokedacom
  6. Save location:项目的存储路径
  7. Language:项目的编程语言,如 Java
  8. Minimum API level:项目的最低 API 等级
  9. 然后点击 Finish。根据屏幕提示,安装可能需要的插件。

集成SDK

  1. 获取最新版本的Android-SDK,然后解压
  2. 将SDK包内libs路径下的如下文件,拷贝到你的项目路径下:
文件或文件夹项目路径
api文件夹中所有jar文件/app/libs/
jniLibs中arm64-v8a 文件夹内/app/src/main/jniLibs/arm64-v8a
jniLibs中armeabi-v7a 文件夹内/app/src/main/jniLibs/armeabi-v7a
注意

若jniLibs文件夹不存在,需自己手动创建。

添加项目权限

根据场景需要,在 /app/src/main/AndroidManifest.xml 文件中添加如下行,获取相应的设备权限:

<uses-permission android:name="android.permission.CAMERA" />
<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.RECORD_AUDIO"/>

导入类

在项目的 Activity 文件中添加如下行:

import com.kedacom.sdk.api.KRtcClient;
import com.kedacom.sdk.api.KRtcDeviceManager;
import com.kedacom.sdk.api.KRtcEngine;

获取设备权限

调用 checkSelfPermission 方法,在开启 Activity 时检查并获取 Android 移动设备的摄像头和麦克风使用权限。

设置动态权限的方法不唯一,以下代码仅供参考。

private static final int PERMISSION_REQ_ID = 22;

// App 运行时确认麦克风和摄像头设备的使用权限。
private static final String[] REQUESTED_PERMISSIONS = {
Manifest.permission.CAMERA,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.RECORD_AUDIO,
Manifest.permission.CALL_PHONE,
Manifest.permission.READ_PHONE_STATE,Manifest.permission.INTERNET
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_chat_view);
if (checkSelfPermission(REQUESTED_PERMISSIONS[0], PERMISSION_REQ_ID) &&
checkSelfPermission(REQUESTED_PERMISSIONS[1], PERMISSION_REQ_ID)) {
}
}
private boolean checkSelfPermission(String permission, int requestCode) {
if (ContextCompat.checkSelfPermission(this, permission) !=
PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, REQUESTED_PERMISSIONS, requestCode);
return false;
}
return true;
}

初始化 KRtcEngine

在调用其他 API 前,需要创建并初始化 KRtcEngine对象。

try {
//初始化SDK
int result = KRtcEngine.init(getApplicationContext()
, new KRtcSdkLogParam(false,"",null)
, new KRtcSdkInitParam(false,false,false,false,false,false));
if(result == 0){
Log.i(TAG,"SDK初始化成功");
}else {
Log.i(TAG,"SDK初始化失败");
return;
}
}catch (Exception e){
e.printStackTrace();
Log.i(TAG,"Exception:"+e.getMessage());
}
//获取SDK的版本
String SdkVersion = KRtcEngine.getVersion();
//初始化kRtcClient
KRtcClient kRtcClient = KRtcEngine.createRtcInstance();
//初始化KRtcDeviceManager
KRtcDeviceManager kRtcDeviceManager = KRtcEngine.getDeviceManager();
注意

SDK的初始化的步骤建议放在Application中操作。

屏幕分享功能使用(辅流)

首先在AndroidManifest.xml文件中添加权限

<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

其次添加一个Activity和一个services

<service 
android:name="com.kedacom.kdvrmc.ScreenCaptureService"
android:enabled="true"
android:foregroundServiceType="mediaProjection">
</service>
<activity
android:name="com.kedacom.kdvrmc.ScreenCaptureActivity"
android:theme="@android:style/Theme.Translucent">
</activity>

在Android 8.0以上版本,需要在使用前点击确认使用授权。才能启动屏幕采集功能,则下次启动App,还要再授权(仅第一次)。

在Android 8.0以下版本,在授权确认框弹出中,选择不再显示,则下一次启动App,将不会再做提示,默认确定授权。

注意

屏幕共享功能仅支持Android5.0以上的版本。

使用SDK需要知道

注意

1 混合会议情况下,不支持单独订阅AVC终端音频。

2 在Android 4.4 设备的性能较低的情况下,建议发布的参数建议设定为720,一层,平台会议设定为720P,30帧, 2M。

3 在Android 4.4 设备上不支持使用屏幕共享功能。

::