SDK 初始化
1. 准备 SDK 库和接口
SDK 库文件包括:
- avatar.jar 协议栈相关
- zmf.jar 音视频媒体相关
- liblemon.so RCS SDK
- libzmf.so 音视频媒体相关
- MtcCliHelper.jar 网络切换自动重连插件
SDK 接口文件包括:com.juphoon.cmcc.app.lemon 包括 SDK 所有接口
SDK 回调文件包括: com.juphoon.cmcc.app.lemon.callback 包括 SDK 所有回调
SDK License 包括:license.sign SDK license 文件
2. 导入 SDK
- 将 liblemon.so、libzmf.so、libtsc.so 文件拷贝到 libs/armeabi-v7a 目录下。
- 将 avatar.jar、zmf.jar、MtcCliHelper.jar文件拷贝到工程的 libs 目录下,并在工程属性->Java Build Path->Libraries 中选择“Add JARs”,选定 avatar.jar、zmf.jar、MtcCliHelper.jar,确定后返回。
- 将 com.juphoon.cmcc.app.lemon 和 com.juphoon.cmcc.app.lemon.callback 拷贝到工程的 src文件夹下。
- 将 license.sign 拷贝到工程的 assets 文件夹下。
完成以上步骤,您就可以在程序中使用 Juphoon SDK 了。
3. 设置 AndroidManifest.xml
声明使用权限,根据应用需要声明:
// 以下为运行 Juphoon SDK 必要的权限 <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.WAKE_LOCK" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
4. 新建 SDK 运行目录
在SD 卡根目录下新建 SDK 运行目录,包括:
- appName: SDK 根目录
- profiles: 配置文件目录
- log: SDK 日志输出目录
String sdCardPath = /sdcardpath; // 获取 SD 卡目录 String RCSPath = sdCardPath + "/" + appName; File file = new File(RCSPath); file.mkdirs(); // 在 SD 卡目录下建立 SDK 根目录 String profileDir = RCSPath + “/profiles”; file = new File(profileDir); file.mkdirs(); // 在 SD 卡目录下建立 profiles 目录 String logDir = RCSPath + “/log”; file = new File(logDir); file.mkdirs(); // 在 SD 卡目录下建立 log 目录
5. 加载 SDK 库文件
在 Application 中加载 SDK 库文件
if (Build.CPU_ABI .equals ("armeabi-v7a" ) || Build.CPU_ABI2 .equals ("armeabi-v7a" )) { // 媒体引擎对 CPU 有要求 System. loadLibrary("zmf"); //加载媒体库 System. loadLibrary("tsc"); //加载 STG 库 System. loadLibrary("lemon"); //加载 SDK 库 }
6. 设置 SDK 日志路径
logDir 即3步骤中创建的日志输出目录
MtcCliCfg.Mtc_CliCfgSetLogDir(logDir);
7. 设置 SDK application Context
SDK 需要 application context 来启动通信组建
Mtc_CliCfgSetContext(getApplicationContext());
8. 设置 SDK License
将 assets 中的 license.sign 导入手机,如:
String path = applicationContext.getFilesDir().getAbsolutePath(); // 将要写入的路径 AssetManager assetManager = context.getAssets(); InputStream in = null; OutputStream out = null; try { in = assetManager.open(“license.sign”); // 打开 assets 中的 license.sign out = new FileOutputStream(path + “license.sign”); // 写入path 中 byte[] buffer = new byte[1024]; int read; while ((read = in.read(buffer)) != -1) { out.write(buffer, 0, read); } in.close(); in = null; out.flush(); out.close(); out = null; } catch (Exception e) { e.printStackTrace(); }
设置license 路径
String licensePath = applicationContext.getFilesDir().getAbsolutePath() + “license.sign”; MtcCliCfg.Mtc_CliCfgSetLicenseFileName(licensePath);
9. 初始化媒体引擎
Juphoon SDK 包含强大的音视频引擎 zmf。初始化媒体引擎只需要调用以下接口:
ZmfAudio. initialize(applicationContext); //初始化音频 ZmfVideo. initialize(applicationContext); //初始化视频
10. 初始化 SDK 定时器
ZpandTimer.init(applicationContext, applicationName); // 初始化 SDK 定时器
11. 初始化 SDK
profilesDir 即3步骤中创建的 SDK 运行目录
int ret = MtcCli.Mtc_CliInit(profilesDir);
ret 为 MtcCommonConstants.ZOK 时,启动成功
ret 为 MtcCommonConstants.ZFAILED,启动失败
至此 SDK 初始化结束。