1 接入准备

1.1 成为开发者

申请开通微吼云账号,提供用户资料,微吼服务人员在后台为用户开通平台账号,账号开通后,用户即可登录,成为一名开发者。

1.2 创建应用

登录微吼云平台后,控制台选择应用管理,进入应用管理页面点击创建应用,根据页面提示信息,完成应用创建。应用创建完成,您可以在控制台界面找到在应用管理界面您可以找到 AppID。

1.3 添加服务

应用创建完成后,选择添加服务,添加文档服务,添加成功后可在文档服务下文档管理的【文档配置】页面查看AppID

1.4 SDK下载

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

获取channel_idaccess_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);