SDK简介
SDK的主要功能包括:监控点预览、回放功能。
开发者拿到的SDK压缩文件,解压后包括《移动端视频SDK编程指南》文档一份、HikVideoPlayerDemo 示例Demo一份。Demo仅作为示例,旨在直观的展示SDK的功能,界面较为简单,界面的实现不在本文档解释,请开发者参考demo中的示例代码及注释开发自己的界面和程
序。请开发者认真阅读本文档,以便于顺利进行SDK的接入和开发工作。
环境要求:AndroidStudio 3.0.0版本及以上,Android 4.3及以上
更新说明
Version 1.3.0(build20200106)
支持软硬解码、智能信息展示设置。
增加电子放大功能支持。
增加arm64-v8a 64位库支持。
Version 1.2.1(build20191128)
修复播放视频概率性卡死问题。
修复录像定位跳跃问题。
Version 1.2.0(build20190517)
修复语音对讲啸叫问题。
Version 1.1.0(build20181213)
新增语音对讲功能。
Version 1.0.0(build20180928)
首个版本提供监控点的预览、回放相关功能。
在预览、回放过程中,提供抓图、声音控制、录像等功能。
快速集成
创建工程
用户需要自行通过Android Studio创建新项目,并配置应用的名称、软件包名称和项目的位置。如果项目已创建,请忽略此步骤。
SDK导入
在 Android Studio 完成新项目的创建后,请从 IDE 左侧打开Project 窗格并选择Project 视图。
然后请严格按照以下步骤执行:
1. 首先将HikVideoPlayer.jar 添加到 Module 的libs 文件夹中,如果没有则先创建再添加。
2. 然后将SDK包括的全部so 库添加到jniLibs 文件夹中,如果没有则先创建再添加。
注意:由于Android官方已不再支持生成ABI为:'armeabi'的so库,因此海康威视不再提供'armeabi'的so库。如果您的项目中引用了其他三方'armeabi'的so库,可以将'armeabi'的so库直接置于'armeabi-v7a'中。如果您的项目中存在多种ABI文件夹,例如同时存在'armeabi'和'armeabi-v7a'文件夹,您必须保证项目中的各个ABI文件夹都有一份相应ABI格式的so库。建议您只需要保留ABI为'armeabi-v7a'的so即可。arm64-v8a同理。
如下图所示:
3. 接着在 Module 的adle 文件的dependencies 中添加如下代码,并同步项目:dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
}
4. 最后打开 Module 的l ,添加网络权限;如需使用SDK本地录像功能,需申请
Android系统读写存储权限;如需使用SDK语音对讲功能,还需申请Android系统麦克风权限。示例代码
如下:
<uses-permission android:name="android.permission.INTERNET"/>
<!-- 允许程序写入录像文件和抓图 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- 允许程序录制音频 -->
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
对于目标Android API在23(Android 6.0)以上的,还需在Java代码中动态申请系统权限。
配置完项目后,我们可以使用HikVideoPlayer了。
SDK初始化
初始化方法必须在工程的自定义Application 类的onCreate() 方法中调用。HikVideoPlayerFactory.initLib(String appKey, boolean enableLog);android权威编程指南
appKey 为保留字段,目前只需传入null或空字符串即可。enableLog 为日志开关选项,传入true 可以在debug模式下打开SDK的日志打印。
预览功能使用
//创建HikVideoPlayer实例
HikVideoPlayer mPlayer =HikVideoPlayerFactory.provideHikVideoPlayer();
//设置播放画面显示surface,仅支持TextureView
TextureView textureView =findViewById(ureView);
mPlayer.SurfaceTexture());
//开启预览
//realPlayUrl为预览短链接,需要通过调用openApi获取
//此方法需要在子线程中执行
mPlayer.startRealPlay(realPlayUrl, new HikVideoPlayerCallback(){
//播放结果回调
//status 共三种状态:SUCCESS(播放成功)、FAILED(播放失败)、EXCEPTION(取流异常)
//错误码,只有 FAILED 和 EXCEPTION 才有值
//注意:回调仍为子线程
@Override
public void onPlayerStatus(@NonNull Status status, int errorCode) {
}
});
回放功能使用
//创建HikVideoPlayer实例
HikVideoPlayer mPlayer =HikVideoPlayerFactory.provideHikVideoPlayer();
//设置播放画面显示surface,仅支持TextureView
TextureView textureView =findViewById(ureView);
mPlayer.SurfaceTexture());
//开启回放
//playbackUrl为回放短链接,需要通过调用openApi获取
/
/回放方法需要传入播放的录像片段的开始时间和结束时间
//时间格式为 "yyyy-MM-dd'T'HH:mm:ss.SSSZ",例如:"2018-05-07T14:41:57.819+03:00"
//此方法需要在子线程中执行
mPlayer.startPlayback(playbackUrl,startTime, stopTime, new HikVideoPlayerCallback(){ //播放结果回调
//status 共四种状态:SUCCESS(播放成功)、FAILED(播放失败)、EXCEPTION(取流异常)、FINISH(回放结//错误码,只有 FAILED 和 EXCEPTION 才有值
//注意:回调仍为子线程
@Override
public void onPlayerStatus(@NonNull Status status, int errorCode) {
}
});
语音对讲功能使用
//创建HikVideoPlayer实例
HikVideoPlayer mPlayer =HikVideoPlayerFactory.provideHikVideoPlayer();
//开启对讲
//talkUrl为对讲短链接,需要通过调用openApi获取
//此方法需要在子线程中执行
mPlayer.startVoiceTalk(talkUrl, new VoiceTalkCallback(){
//播放结果回调
//status 共三种状态:SUCCESS(开启对讲成功)、FAILED(开启对讲失败)、EXCEPTION(取流异常)
//错误码,只有 FAILED 和 EXCEPTION 才有值
//注意:回调仍为子线程
@Override
public void onTalkStatus(@NonNull HikVideoPlayerCallback.Status status, int errorCode) {
}
});
混淆配置
如果App需要使用proguard进行混淆打包,请添加以下混淆代码:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论