状态获取:
FunSupport.getInstance().requestDeviceStatus
状态值:{ STATUS_UNKNOWN:0 STATUS_ONLINE:1 STATUS_OFFLINE:2 STATUS_SLEEP:3 STATUS_CAN_NOT_WAKE_UP:4 }
唤醒操作:FunSupport.getInstance().requestDevWakeUp
回调函数:onWakeUpResult(boolean isSuccess, FunDevStatus state)
休眠操作:FunSupport.getInstance().requestDevSleep
回调函数:onSleepResult(boolean isSuccess, FunDevStatus status)
状态获取:
FunSDK.SysGetDevState
回调函数:OnFunSDKResult
消息ID://5009 EUIMSG.SYS_GET_DEV_STATE
状态值:int idrState = FunSDK.GetDevState(devId, SDKCONST.EFunDevStateType.IDR) public interface EFunDevState { int UNKOWN = 0; int LINE = 1; int SLEEP = 2; int SLEEP_UNWEAK = 3; int OFF_LINE = -1; int NO_SUPPORT = -2; int NotAllowed = -3; }
唤醒操作:FunSDK.DevWakeUp
回调函数:OnFunSDKResult
消息ID://5142 EUIMSG.DEV_WAKEUP
休眠操作://要让设备休眠就需要登出设备,设备端发现没有客户端连接 就会自动休眠。 //如果设备有多个客户端同时连接的情况下,调用下方的接口不能保证设备会进入休眠状态 FunSDK.DevLogout
状态获取:
FunSupport.getInstance().requestSyncDevZone
设置时区:
FunSDK.DevSetConfigByJson
JsonName:"System.TimeZone"
Json数据:{ "System.TimeZone": { "FirstUserTimeZone": 0, "timeMin": -480 }, "Name": "System.TimeZone", "SessionID": "0x0000000066" }
获取夏令时:FunSDK.DevGetConfigByJson
JsonName:"General.Location"
Json数据{ "Name": "General.Location", "SessionID": "0x000000006e" }
设置夏令时:FunSDK.DevSetConfigByJson
JsonName:"General.Location"
Json数据:{ "General.Location": { "DSTEnd": { "Day": 4, "Hour": 0, "Minute": 0, "Month": 11, "Week": 0, "Year": 2019 }, "DSTRule": "Off", "DSTStart": { "Day": 11, "Hour": 0, "Minute": 0, "Month": 3, "Week": 0, "Year": 2019 }, "DateFormat": "YYMMDD", "DateSeparator": "-", "Language": "SimpChinese", "TimeFormat": "24", "VideoFormat": "PAL", "WorkDay": 62 }, "Name": "General.Location", "SessionID": "0x000000006e" }
定义 | int MediaRealPlay(int hUser, String devId, int nChnIndex, int nStreamType, Object hWnd, int nSeq) | |
描述 | 播放设备通道实时视频 | |
参数说明 | 名称 | 说明 |
devId | 设备序列号 | |
nChnIndex | 通道号(从0开始) | |
nStreamType | 码流类型;0:主码流;1:子码流1 | |
hWnd | 显示窗口GLSurfaceView20对象 | |
nSeq | 操作序列号(用户自定义) | |
返回 | 视频播放对象句柄,可用来实现本视频的开始、抓图、录像等操作 | |
结果消息 | 名称 | 说明 |
id | 消息值:EUIMSG .EMSG_START_PLAY | |
arg1 | ==EE_OK:成功;<0:失败,详见错误码说明 |
定义 | int SetIntAttr(int hObj, int nId, int nValue) | |
描述 | 获取YUV数据 | |
参数说明 | 名称 | 说明 |
hObj | 播放句柄 | |
nId | EOA_MEDIA_YUV_USER | |
nValue | 回调ID | |
结果消息 | 名称 | 说明 |
id | 消息值:EUIMSG.ON_YUV_DATA | |
arg1 | ==EE_OK:成功;<0:失败,详见错误码说明 |
//如果只要获取YUV数据 不需要显示的话 第五个参数 传null就可以了 其他参数和实时播放调用一样
int playHandle = FunSDK.MediaRealPlay(userId, funDevice.getDevSn(),0, SDKCONST.StreamType.Main, null,0);
FunSDK.SetIntAttr(playHandle,EOA_MEDIA_YUV_USER,userId);
case EUIMSG.ON_YUV_DATA:
//Todo
break;
定义 | int SysGetDevAbilitySetFromServer(int hUser, String sendJson, int nSeq) | |
描述 | 从服务器获取设备的能力集 *服务器默认ip/port可以通过SysSetServerIPPort设置:参数"CAPS_SERVER",否则默认:caps.xmcsrv.net:80 | |
参数说明 | 名称 | 说明 |
sendJson | 请求Json数据 例如:{"appType":"com.example.funsdkdemo","caps":["xmc.service"],"sn":"1234567890123456","tp":0} | |
nSeq | 操作序列号(用户自定义) | |
返回 | devSysInfo传NULL/””,返回 -99999 参数错误 | |
结果消息 | 名称 | 说明 |
id | 消息值:EUIMSG .EMSG_START_PLAY | |
arg1 | ==EE_OK:成功;<0:失败,详见错误码说明 | |
Str | 服务器返回的json信息里面的"caps" | |
pData | 设备序列号 |
参考代码:com.example.funsdkdemo.ListAdapterFunDevice
String sendJson = "{"appType":"com.example.funsdkdemo","caps":["xmc.service"],"sn":"1234567890123456","tp":0}"
FunSDK.SysGetDevAbilitySetFromServer(userId,sendJson,0);
case EUIMSG.SYS_GET_ABILITY_SET:
String devId = G.ToString(msgContent.pData);//设备序列号
String resultJson = msgContent.str;//返回的json数据
//Todo
break;
定义 | int SearchMediaByMoth(int hUser, String devId, int nChannel, String sStreamType, int nDate, int nSeq) | |
描述 | 查询视频日历节点 | |
参数说明 | 名称 | 说明 |
devId | 序列号 | |
nChnId | 通道号 | |
nStreamType | 码流类型 "Main" 副码流"Sub" | |
date | 日期 | |
返回 | ||
结果消息 | 名称 | 说明 |
id | 消息值:EUIMSG .EMSG_START_PLAY | |
arg1 | ==EE_OK:成功;<0:失败,详见错误码说明 |
参考代码:com.example.funsdkdemo.cloud.ActivityDevCloudDate
Calendar calendar = Calendar.getInstance();
int times = FunSDK.ToTimeType(new int[]{calendar.get(Calendar.YEAR),
(calendar.get(Calendar.MONTH) + 1),
(calendar.get(Calendar.DAY_OF_MONTH)), 0, 0, 0});
CloudDirectory.SearchMediaByMoth(userId,funDevice.getDevSn() , 0, "Main", times, 0);
case EUIMSG.MC_SearchMediaByMoth:
String resultJson = msgContent.str;//查询返回的json数据
break;
定义 | int SearchMediaByTime(int hUser, String devId, int nChannel, String sStreamType, int nStartTime, int nEndTime, int nSeq) | |
描述 | 获取报警录像通过指定时间 | |
参数说明 | 名称 | 说明 |
devId | 序列号 | |
nChnId | 通道号 | |
nStreamType | 码流类型 "Main" 副码流"Sub" | |
nStartTime | 开始时间 | |
nEndTime | 结束时间 | |
返回 | ||
结果消息 | 名称 | 说明 |
id | 消息值:EUIMSG . MC_SearchMediaByTime | |
arg1 | ==EE_OK:成功;<0:失败,详见错误码说明 | |
Str | 获取到的信息 Json格式数据 |
参考代码:com.example.funsdkdemo.cloud.ActivityDevCloudPlayBack
Calendar calendar = Calendar.getInstance();
int begin[] = { calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH) + 1,
calendar.get(Calendar.DATE), 0, 0, 0 };
int end[] = { calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH) + 1,
calendar.get(Calendar.DATE), 23, 59, 59 };
CloudDirectory.SearchMediaByTime(userId,"1234567890123456",0, "", FunSDK.ToTimeType(begin),FunSDK.ToTimeType(end),0);
case EUIMSG.MC_SearchMediaByTime:
String resultJson = msgContent.str;//返回的json数据
break;
定义 | int MediaCloudRecordPlay(int hUser, String szDevId, int nChannel, String sStreamType, int nStartTime, int nEndTime, Object hWnd, int nSeq) | |
描述 | 云录像播放 | |
参数说明 | 名称 | 说明 |
szDevId | 序列号 | |
nChannel | 通道号 | |
sStreamType | 码流类型 "Main" 副码流"Sub" | |
nStartTime | 开始时间 | |
nEndTime | 结束时间 | |
hWnd | 显示窗口GLSurfaceView20对象 | |
返回 | ||
结果消息 | 名称 | 说明 |
id | 消息值:EUIMSG . START_PLAY 回放过程中的信息通过“EUIMSG . ON_PLAY_INFO”消息定时通知 回放结束时通过消息“EUIMSG . ON_PLAY_END”通知 | |
arg1 | ==EE_OK:成功;<0:失败,详见错误码说明 |
参考代码:com.example.funsdkdemo.cloud.ActivityDevCloudPlayBack
Calendar calendar = Calendar.getInstance();
int[] endTime = {calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1,
calendar.get(Calendar.DAY_OF_MONTH), 23, 59, 59};
int endTimes = FunSDK.ToTimeType(endTime);
playHandle = FunSDK
.MediaCloudRecordPlay(userId,
funDevice.getDevSn(),0,"Main",absTime,endTimes,
playSurfaceView, 0);//主码流 Main 副码流 Sub