第一步:集成
平台支持:
平台 | SDK 及兼容性 | SDK 及 Demo |
Android | 最低兼容 Android 5.1(SDK API Level 22),建议使用 Android 5.1 (SDK API Level 22)及以上版本。 | 1. 填写 申请表 进行申请。 2. 完成申请后,相关工作人员将联系您进行需求沟通,并提供对应 SDK 及 Demo。 |
第二步:接入准备
说明:
开始使用 SDK 前,我们还需要获取
AccessId
和AccessToken
,获取方式如下:AccessId: 指外部访问 IoT Video(Consumer Version) 云平台的唯一性身份标识。
AccessToken: 登录成功后 IoT Video(Consumer Version) 云服务器返回的
AccessToken
。1. 获取 AccessId
2. 获取 AccessToken
用户自有账号体系可以采用云对接的方式实现账户体系相关业务,详情请参见 终端用户接入授权。
第三步:SDK 初始化
1. 初始化
在您的 App 调用 SDK 相关功能之前(建议在 Application 类中)进行如下设置:
public class MyApp extends Application {@Overridepublic void onCreate() {super.onCreate();// 初始化IoTVideoSdk.init(getApplicationContext(), null);//*** 需要收集SDK日志时,请设置日志文件夹路径以及日志级别 ***// 1.设置日志文件夹路径IoTVideoSdk.setLogPath("日志路径")//eg: getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS) + File.separator + "xLog"// 2.设置日志级别IoTVideoSdk.setDebugMode(IoTVideoSdk.LOG_LEVEL_DEBUG)}}
2. 注册
账号注册登录成功后,即可获取到 accessId、accessToken,调用 SDK 注册接口:
IoTVideoSdk.register(accessId, accessToken);
说明:
对设备的操作都依赖于上述两个参数的加密校验,非法参数将无法操作设备。
第四步:配网
1. 设备联网
设备配网模块用来为设备配置上网环境,目前支持以下配网方式:
有线配网
扫码配网
AP 配网
说明:
2. 设备绑定
具体操作请参见 终端用户绑定设备接口 进行设备绑定。
第五步:监控
使用内置的多媒体模块可以轻松实现设备监控。
1. 布局添加 IotVideoView<com.tencentcs.iotvideo.iotvideoplayer.IoTVideoViewandroid:id="@+id/tencentcs_gl_surface_view"android:layout_width="0dp"android:layout_height="0dp"app:layout_constraintDimensionRatio="H,16:9"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" />2. 使用import com.tencentcs.iotvideo.iotvideoplayer.*;//监控播放器MonitorPlayer monitorPlayer = new MonitorPlayer();//如果是多源设备(NVR),创建监控播放器时应指定源ID,该方法的三个参数分别代表:设备ID、视频清晰度、源ID//monitorPlayer.setDataResource(mDeviceId, definition, sourceId);//如果设备不支持多源,不要设置源IDmonitorPlayer.setDataResource(mDeviceId);IoTVideoView mVideoView = findViewById(R.id.tencentcs_gl_surface_view);monitorPlayer.setVideoView(mVideoView);//开始播放monitorPlayer.play()//暂停monitorPlayer.stop()//释放monitorPlayer.release()
第六步:消息管理
监听物模型、事件消息和 App 上线通知
//ProReadonly状态消息IotVideoSdk.getMessageMgr().addModelListener(new IModelListener() {@Overridepublic void onNotify(ModelMessage data) {//todo}});//Event事件消息IotVideoSdk.getMessageMgr().addEventListener(new IEventListener() {@Overridepublic void onNotify(EventMessage data) {//todo}});//App上线通知IoTVideoSdk.getMessageMgr().addAppLinkListener(new IAppLinkListener() {@Overridepublic void onAppLinkStateChanged(int i) {//todo}});
获取物模型
//获取ProReadonly/ProWritable数据IotVideoSdk.getMessageMgr().readProperty(123456789, "ProReadonly", new com.tencentcs.iotvideo.messagemgr.IResultListener<ModelMessage>() {@Overridepublic void onStart() {}@Overridepublic void onSuccess(ModelMessage msg) {}@Overridepublic void onError(int errorCode, String errorMsg) {}});
设置物模型
//发送Action/ProWritable数据IotVideoSdk.getMessageMgr().writeProperty(123456789, "ProWritable._logLevel","{"setVal":0}", new com.tencentcs.iotvideo.messagemgr.IResultListener<ModelMessage>() {@Overridepublic void onStart() {}@Overridepublic void onSuccess(ModelMessage msg) {}@Overridepublic void onError(int errorCode, String errorMsg) {}});
第七步:云存储
获取回放的 m3u8 列表
在购买云存储服务后,可以通过以下方式查询设备上传到云端的 m3u8 列表:
VasMgr.getVasService().cloudStoragePlayback(mDevice.getDevId()/**设备ID**/, 28800/**时区**/,mPlaybackStartTime/**开始时间**/,mPlaybackEndTime/**结束时间**/, new SubscriberListener() {@Overridepublic void onStart() {}@Overridepublic void onSuccess(@NonNull JsonObject response) {//成功获取到回放m3u8列表}@Overridepublic void onFail(@NonNull Throwable e) {//获取到回放m3u8列表失败});