androidSDKV300.docx
- 文档编号:4114482
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:37
- 大小:392.76KB
androidSDKV300.docx
《androidSDKV300.docx》由会员分享,可在线阅读,更多相关《androidSDKV300.docx(37页珍藏版)》请在冰豆网上搜索。
androidSDKV300
中维世纪_播放SDK_V2.0.0
声明:
因播放显示方式修改,上版本的播放sdk不在维护,现在启用新版本的播放sdk采用OpenGL显示,接口跟上个版本差别还是比较大的,如果启用“播放SDK_V2.0.0”对应的播放逻辑均需要修改。
1.接口分析
所有接口均在com.jovision.jni类里面,以下是接口详细说明
/**
*1.初始化,参考{@linkJVSUDT#JVC_InitSDK(int,Object)}
*
*@paramhandle
*回调句柄,要传MainApplication的实例对象哦,因为回调方式是:
*{@linkMainApplication#onJniNotify(int,int,int,Object)}
*@paramport
*本地端口
*@parampath
*日志路径
*@returntrue:
成功false:
失败
*/
publicstaticnativebooleaninit(Objecthandle,intport,Stringpath);
调用实例:
初始化
Jni.init(((MainApplication)getApplication()),9200,Consts.LOG_PATH);
/**
*2.卸载,参考{@linkJVSUDT#JVC_ReleaseSDK()}
*
*/
publicstaticnativevoiddeinit();
调用实例:
卸载网络库
Jni.deinit();
/**
*3.(新增接口)获取底层库版本,为了防止库用错,建议将该版本号打印出来
*
*@returnjson:
{"jni":
"xx","net":
"xx"}
*/
publicstaticnativeStringgetVersion();
调用实例:
获取底层库版本
Jni.getVersion();
/**
*4.启用底层日志打印,参考{@linkJVSUDT#JVC_EnableLog(boolean)}
*
*
*@paramenabletrue:
启用,false:
不启用
*/
publicstaticnativevoidenableLog(booleanenable);
调用实例:
启用播放库日志
Jni.enableLog(true);
不启用播放库日志
Jni.enableLog(false);
/**
*5.(新增接口)删除底层保存的错误日志
*
*/
publicstaticnativevoiddeleteLog();
调用实例:
删除播放库日志
Jni.deleteLog();
/**
*6.连接,参考
*{@linkJVSUDT#JVC_Connect(int,int,String,int,String,String,int,String,boolean,int,boolean,int,Object)}
*
*@paramwindow
*窗口索引,从0开始
*@paramchannel
*设备通道,从1开始
*@paramip
*@paramport
*@paramusername
*@parampassword
*@paramcloudSeeId
*@paramgroupId
*@paramisLocalDetect
*@paramturnType
*@paramisPhone
*@paramconnectType
*@paramsurface
*@paramisTryOmx
*@return连接结果,成功时返回窗口索引,失败时返回原因值
*/
publicstaticnativeintconnect(intwindow,intchannel,Stringip,
intport,Stringusername,Stringpassword,intcloudSeeId,
StringgroupId,booleanisLocalDetect,intturnType,
booleanisPhone,intconnectType,Objectsurface,booleanisTryOmx);
调用实例:
视频播放分为云视通连接和IP连接:
如果云视通连接参数可以正常设置,但是如果是IP连接“cloudSeeId”一定要置为-1,否则仍然走云视通连接
connectType分为5,6两个值,5是连接手机码流,6是连接第一码流
if("".equalsIgnoreCase(device.getIp())||0==device.getPort()){
//无ip和端口走云视通连接
result=Jni.connect(channel.getIndex(),channel.getChannel(),
device.getIp(),device.getPort(),device.getUser(),
device.getPwd(),device.getNo(),device.getGid(),true,
1,true,JVNetConst.TYPE_3GMO_UDP,surface,false);
}else{//有Ip用ip连接,云视通号字段需要传-1,否则仍然走的云视通连接
result=Jni.connect(channel.getIndex(),channel.getChannel(),
device.getIp(),device.getPort(),device.getUser(),
device.getPwd(),-1,device.getGid(),true,1,true,
JVNetConst.TYPE_3GMO_UDP,surface,false);
}
/**
*7.暂停底层显示
*
*@paramwindow
*窗口索引
*@returntrue:
成功,false:
失败
*/
publicstaticnativebooleanpause(intwindow);
调用实例:
暂停某个窗口
Jni.pause(index);
/**
*8.恢复底层显示
*
*@paramwindow
*窗口索引
*@paramsurface
*@returntrue:
成功,false:
失败
*/
publicstaticnativebooleanresume(intwindow,Objectsurface);
调用实例:
恢复某个窗口
Jni.resume(index,holder.getSurface();
/**
*9.断开,参考{@linkJVSUDT#JVC_DisConnect(int)}
*
*@paramwindow窗口索引
*@returntrue:
成功,false:
失败
*/
publicstaticnativebooleandisconnect(intwindow);
调用实例:
断开某个窗口的视频
Jni.disconnect(index);
/**
*10.发送字节数据,参考{@linkJVSUDT#JVC_SendData(int,byte,byte[],int)}
*
*@paramwindow
*窗口索引
*@paramuchType
*@paramdata
*@paramsize
@returntrue:
成功,false:
失败
*/
publicstaticnativebooleansendBytes(intwindow,byteuchType,
byte[]data,intsize);
调用实例:
远程回放视频暂停功能
Jni.sendBytes(index,JVNetConst.JVN_CMD_PLAYPAUSE,newbyte[0],0);
远程回放继续播放功能
Jni.sendBytes(index,JVNetConst.JVN_CMD_PLAYGOON,newbyte[0],0);
实时视频继续播放功能
Jni.sendBytes(index,JVNetConst.JVN_CMD_VIDEO,newbyte[0],8);
实时视频暂停播放功能
Jni.sendBytes(index,JVNetConst.JVN_CMD_VIDEOPAUSE,newbyte[0],8);
/**
*11.发送整数数据(远程回放进度调节),参考{@linkJVSUDT#JVC_SendPlaybackData(int,byte,int,int)}
*
*实际调用{@link#sendCmd(int,byte,byte[],int)}
*
*@paramwindow
*窗口索引
*@paramuchType
*@paramdata进度
*/
publicstaticnativebooleansendInteger(intwindow,byteuchType,intdata);
调用实例:
调节远程回放进度
Jni.sendInteger(index,JVNetConst.JVN_CMD_PLAYSEEK,seekProgress);
/**
*12.修改指定窗口播放标识位,是否启用远程回放,参考{@linkJVSUDT#ChangePlayFalg(int,int)}
*
*@paramwindow
*窗口索引
*@paramenable
*@returntrue:
启用远程回放,false:
不启用远程回放
*/
publicstaticnativebooleanenablePlayback(intwindow,booleanenable);
调用实例:
启用远程回放
Jni.enablePlayback(index,true);
关闭远程回放
Jni.enablePlayback(index,false);
智联路由:
1.初始化接口:
加载so库
System.loadLibrary("elianjni");
2.调用接口
1.初始化智联路由接口
/*
*InitSmartConnection
*/
publicnativeintInitSmartConnection(StringTarget,intsendV1,intsendV4);
范例:
elian.InitSmartConnection(null,1,0)
2.开始连接
/**
*StartSmartConnectionwithHomeAP
*
*@SSID:
SSIDofHomeAP
*@Password:
PasswordofHomeAP
*@Auth:
AuthofHomeAP
*/
publicnativeintStartSmartConnection(StringSSID,StringPassword,
StringCustom,byteAuth);
范例:
elian.StartSmartConnection(wifiSsid,pass,
"androidsmartcustom",mAuthMode);
3.断开连接
/**
*StopSmartConnectionbyuser
*/
publicnativeintStopSmartConnection();
2.接口调用顺序
1.进程序调用的接口
(1)加载播放库(必须调用)
System.loadLibrary("play");
(2)初始化播放库(必须调用)
Jni.init(((MainApplication)getApplication()),9200,Consts.LOG_PATH);
(3)方便调试可以打开日志(可选)
Jni.enableLog(true);
(4)为明确播放库版本号可以调用(可选)
Jni.getVersion();
2.退出程序调用的接口
(1)删除调试日志
Jni.deleteLog();
(2)卸载网络库
Jni.deinit();
3.DEMO使用方法
设备号:
云视通号
通道数量:
设备的通道数量
连接的通道号:
要连接设备的第几通道,连接的通道号<=设备的通道数量
设备IP/设备端口:
如果输入有效IP/设备端口则通过IP连接该设备
用户名密码:
即为设备的用户名密码
其他功能尽可以体验一下播放demo。
中维世纪_播放SDK_V2.2.0
此版本在上个版本基础上改动了播放接口,增加对讲功能。
1.接口分析
改动接口:
/**
*6.新接口连接,参考
*{@linkJVSUDT#JVC_Connect(int,int,String,int,String,String,int,String,boolean,int,boolean,int,Object)}
*
*@paramwindow
*窗口索引,从0开始
*@paramchannel
*设备通道,从1开始
*@paramip
*@paramport
*@paramusername
*@parampassword
*@paramcloudSeeId
*@paramgroupId
*@paramisLocalDetect
*@paramturnType
*@paramisPhone
*@paramconnectType
*@paramsurface
*@paramisVip
*@paramisTryOmx
*@paramthumbName
*@return连接结果,成功时返回窗口索引,失败时返回原因值
*/
publicstaticnativeintconnect(intwindow,intchannel,Stringip,
intport,Stringusername,Stringpassword,intcloudSeeId,
StringgroupId,booleanisLocalDetect,intturnType,
booleanisPhone,intconnectType,Objectsurface,booleanisVip,
booleanisTryOmx,StringthumbName);
调用实例:
result=Jni.connect(channel.getIndex(),channel.getChannel(),
device.getIp(),device.getPort(),device.getUser(),
device.getPwd(),device.getNo(),device.getGid(),true,
1,true,JVNetConst.TYPE_3GMO_UDP,surface,false,
false,null);
在原有接口基础上增加isVip和thumbName参数,其他地方不动,这两个值一个传false,一个传null即可。
新增接口:
/**
*13.初始化音频编码
*
*@paramtype
*类型,amr/alaw/ulaw,参考{@linkConsts#JAE_ENCODER_SAMR},
*{@linkConsts#JAE_ENCODER_ALAW},
*{@linkConsts#JAE_ENCODER_ULAW}
*@paramsampleRate
*@paramchannelCount
*@parambitCount
*@paramblock
*PCM640
*@return
*/
publicstaticnativebooleaninitAudioEncoder(inttype,intsampleRate,
intchannelCount,intbitCount,intblock);
/**
*14.编码一帧
*
*@paramdata
*@return失败的话返回null
*/
publicstaticnativebyte[]encodeAudio(byte[]data);
/**
*15.销毁音频编码,如果要切换编码参数,必须销毁的重新创建
*
*@return
*/
publicstaticnativebooleandeinitAudioEncoder();
13.14.15接口顾名思义不做解释
/**
*16.发送字符串数据
*
*@paramwindow
*窗口索引
*@paramuchType
*发送类型
*@paramisExtend
*是否扩展消息
*@paramcount
*扩展包数量
*@paramtype
*扩展消息类型
*@paramdata
*数据
*/
publicstaticnativebooleansendString(intwindow,byteuchType,
booleanisExtend,intcount,inttype,Stringdata);
调用实例:
Jni.sendString(index,JVNetConst.JVN_RSP_TEXTDATA,false,0,
AppConsts.TYPE_SET_PARAM,
String.format(AppConsts.FORMATTER_TALK_SWITCH,param));
接口分析:
调用此接口可以给设备发送指令让其执行某些操作,实例的作用是打开设备mic和关闭设备mic的功能。
2.接口调用顺序
1.开启对讲功能
(1)开启对讲命令
Jni.sendBytes(index,JVNetConst.JVN_REQ_CHAT,newbyte[0],8);
(2)停止对讲命令
Jni.sendBytes(index,JVNetConst.JVN_CMD_CHATSTOP,newbyte[0],8);
(3)开/关mic命令
最后一个参数:
"talkSwitch="+tag;//1开始0关闭
Jni.sendString(index,JVNetConst.JVN_RSP_TEXTDATA,false,0,
AppConsts.TYPE_SET_PARAM,
String.format(AppConsts.FORMATTER_TALK_SWITCH,param));
3.DEMO使用方法
图1图2图3
此功能为单向对讲:
点击对讲会出现图2的效果,提示长按对讲,此时会听到设备端传过来的声音,手指长按按钮后可以说话,将手机端的声音传送给设备,松开手后停止发送音频数据,但是可以听到设备端传递过来的声音,再点击一下按钮关闭对讲功能。
注:
因播放SDK升级,使用新SDK时需要更换播放库libplay.so。
中维世纪_播放SDK_V2.4.0
此版本在上个版本基础上增加了声波配置设备无线功能。
1.新增接口分析
/**
*17.生成声波配置语音数据
*
*@paramdata
*/
publicstaticnativevoidgenVoice(Stringdata);
本次仅增加一个获取声波语音数据的接口,参数是String类型:
接口调用实例:
Jni.genVoice(params);
Params格式是:
wifi名称(例如:
wuxian)+;+wifi密码(例如:
12345678)
拼出来的params是:
wuxian;12345678
方法调用后通过Consts.CALL_GEN_VOICE:
回调回语音数据播放即可。
中维世纪_播放SDK_V2.6.0
此版本在上个版本基础上增加了以下四项功能。
1.设置STA模式
2.设置码率
3.AP模式设备连接
4.音视频同步录制
1.接口分析
改动接口:
/**
*6.新接口连接,参考
*{@linkJVSUDT#JVC_Connect(int,int,String,int,String,String,int,String,boolean,int,boolean,int,Object)}
*
*@paramwindow
*窗口索引,从0开始
*@paramchannel
*设备通道,从1开始
*@paramip
*@paramport
*@paramusername
*@parampassword
*@paramcloudSeeId
*@paramgroupId
*@paramisLocalDetect
*@paramturnType
*@paramisPhone
*@paramconnectType
*@paramsurface
*@paramisVip
*@paramisTcp新增字段
*@paramisAp新增字段
*@paramisTryOmx
*@paramthumbName
*@return连接结果,成功时返回窗口索引,失败时返回原因值
*/
publicstaticnativeintconnect(intwindow,intchannel,Stringip,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- androidSDKV300