1 接入准备
1.1 成为开发者
申请开通微吼云账号,提供用户资料,微吼服务人员在后台为用户开通平台账号,账号开通后,用户即可登录,成为一名开发者。
1.2 创建应用
登录微吼云平台后,控制台选择应用管理,进入应用管理页面点击创建应用,根据页面提示信息,完成应用创建。应用创建完成,您可以在控制台界面找到在应用管理界面您可以找到 AppID。
1.3 添加服务
应用创建完成后,选择添加服务,添加文档服务,添加成功后可在文档服务下文档管理的【文档配置】页面查看AppID
1.4 SDK下载
2 工程配置
2.1 开发环境
- Android SDK Tools: android-sdk_22.0.|+
- minSdkVersion: 16
- targetSdkVersion: 22
- Android Studio
2.2 系统要求
- SDK 支持 在 Android 4.1(API 16)及以上系统上运行,但只有 ( Android 4.3) API 18 以上的系统才能开启硬件编码
2.3 接入流程
- 新建gradle工程
- 复制vhallframework1.0.jar到工程lab目录下
- 复制jnilibs文件夹内容到appjni目录下
2.4 库简介
- vhallframework1.0.jar:vhallsdk基础包,用户sdk基础通迅、全局配置、日志管理、权限控制等。
- socket.io 一款公共I/O库,基础通讯功能使用,目前使用截止文档编写之日最新稳定版
compile("io.socket:socket.io-client:0.9.0") {
exclude group: 'org.json', module: 'json'
}
2.5 配置权限
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.RECORD_VIDEO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
2.6 接口简介
2.6.1 VhallSDK初始化
appid为注册应用时配置的应用ID 初始化操作为SDK的入口,一切SDK功能都在初始化成功后才能使用,建议在应用application启动时调用
VhallSDK.getInstance().init(Context context, String appid);
2.6.2 SDK信息配置
1、配置用户ID
用户ID为客户平台用户唯一标识,建议在用户登录之后配置
VhallSDK.getInstance().setUserId(String userid);
2、配置日志显示
设置SDK日志显示(警告和错误级别日志必打印,此开关控制debug/info/verbose级别日志
VhallSDK.getInstance().setLogEnable(boolean enable);
2.6.3 获取SDK状态
SDK是否初始化成功并处于可用状态,初始化操作会校验appid对应当前包名和签名,请确保配置正确
VhallSDK.getInstance().isEnable();
2.6.4 加入频道
加入频道并接收频道信息,channelid表示当前频道号,如果是lss服务,房间号即为频道号
VhallSDK.getInstance().join(String channelid,Callback callback);
2.6.5 离开频道
VhallSDK.getInstance().leave(String channelid);
3 功能使用
3.1 获取channel_id、access_token
3.2 调用流程
3.2.1 创建 VHOPS
文档的构建有两种方式:第一种,通过channelId和accessToken构建,适用于独立的文档直播场景;第二种,通过recordId构建,适用于观看录播的过程中,观看此录播对应的文档。
// 第一步创建 VHDocument 对象 , 传入对应的参数
mDocument = new VHOPS(mChannelId, "", mAccessToken);
3.2.2 设置文档的显示区域
// VHDocumentView 是SDK中提供用来显示文档的控件
view = (VHOPSView) this.findViewById(R.id.doc);
// 获取到VHDocumentView的实例添加到Document中
document.setDocumentView(view);
3.3.3 加入频道
调用Join()加入频道,获取Document的服务和消息.
document.join();
3.3.4 设置监听
监听文档服务回调出来的事件,包含当前页、步和总页、总步等.
mDocument.setEventListener(new VHOPS.OnEventListener() {
@Override
public void onEvent(JSONObject object) {
Log.i(TAG, "object:" + object.toString());
mPageView.setText("页数:" + (object.optInt("currentPage") + 1) + "/" + object.optInt("page"));
mStepView.setText("步数:" + (object.optInt("currentStep") + 1) + "/" + object.optInt("step"));
}
});
3.3.4 离开频道
调用leave()加入频道,终止Document的服务和消息.
document.leave();
3.3.5 设置是否可操作文档(重要)
只有发起端才可以开启文档操作权限,默认关闭状态
mDocument.getView().setEditable(false);
以下是文档操作接口示例,只有有文档操作权限才能调用
3.3.6 翻页、翻步数
mDocument.getView().preSlide();
mDocument.getView().nextSlide();
mDocument.getView().preStep();
mDocument.getView().nextStep();
3.3.7 设置操作类型(添加、修改、删除)
mDocument.getView().setAction(IVHOPS.DrawAction.ADD);
3.3.8 设置涂鸦类型
mDocument.getView().setDrawType(type);
3.3.9 设置文档
mDocument.getView().setDoc(docid);