Android

监控摄像机状态

版本/作者/日期修改内容
1.0/Tonly/2015-11-02初版
  • 监控摄像机状态
前提条件:指定摄像机cam连接成功,否则操作会失败
函数:public int monitorStatus(byte[] con, int len);
说明:
请求监视 camera 的状态;
本函数是向 camera 请求监视 camera 的某一个或多个状态。
当操作成功后,如果用户指定监视的某个状态发生改变,camera 会通知客户端程序;
例如,用户可请求监视 camera 的 disk、record、alarm 状态,那么一旦 camera 的磁盘状态或者录像状态或者报警状态发生改变,则用户可通过关注该 camera 的 MONITORED_STATUS_CHANGED 事件来及时获知。
参数:
con:[byte[]],用来指明要监视的状态名称。con 参数的格式是由一个或多个字符串组成,
每个字符串是由要监视的状态名称组成,每个字符串之间由 ‘\0’ 分隔。
len: 参数的取值等于 con 的所有数据长度,包括每个字符串结尾的 ‘\0’。
例如:
con = “disk\0record\0alarm\0”;
len = 18;
回调函数:public void monitoredStatusChangedCallback(byte[] content, int len);
示例:(监控摄像机报警状态)
public class MonitorActivity extends Activity implements CamMsgListener{ //类MonitorActivity使用CamMsgListener接口
String s = "alarm\0";
cam.monitorStatus(s.getBytes(), s.length());//主动请求获取摄像机报警状态
@Override
public void cameraMsg(Message content) {
switch (content.what) {
case Ipcamera.MONITORED_STATUS_RESULT:
System.out.println("获取当前摄像机报警状态成功");
System.out.println("当前摄像机报警状态alarm=" + content.result);
break;
case Ipcamera.MONITORED_STATUS_CHANGED:
System.out.println("摄像机当前请求监控的报警状态有变化");
System.out.println("摄像机当前报警状态alarm=" + cam.alarm_status );
break;
default:
break;
}
}
}
备注:
1.示例程序只监控了alarm状态,所以只要该MONITORED_STATUS_CHANGED事件触发时,一定就是alarm状态改变了
2.如果监控了多种状态,如disk和alarm两种,当MONITORED_STATUS_CHANGED事件触发时,需要同时获取磁盘和报警状态;
3.例如:当前报警状态alarm = cam.alarm_status;
当前磁盘状态disk = cam.disk_status;
版权所有:深圳新瑞彩网络科技有限公司

信产部备案号:粤ICP备09050685号