康佳应急广播 EmergRadioGX(KBTA100-B)项目

测试平台信息

IP:220.167.54.108
端口号:8085
账号:admin
密码:123456

实时广播开播的指令交互

apk与终端交互逻辑

App不下发指令给终端;
App没法获取终端命令执行结果;
App执行结果不是上报服务器,而是通过服务器将指令传递给终端;
指令编解码工具是从 TAS 项目直接复制过来的,注释掉会报错的代码,所以基本相同。

接口文件

/**
* BroadRealTimeDialog.java  实时广播页面
* 开播/停播实现逻辑,186行
**/
public void startBroad()

/**
*
* 200~215行,停播逻辑
* 218~247行,开播逻辑,开播前先去服务器请求 EBMID 才能去服务器开播
**/
WebPlatformSession.getInstance().writeToServer(stopBroadByte); // 发送停播指令 215行
WebPlatformSession.getInstance().writeToServer(startBroadByte); // 发送开播指令 242行

// 应急(日常)广播开播(停播)指令(0x04)
public static byte[] getStartBroadBytes(String ebmid, String addressCode, byte ebm_class, byte ebm_level, byte volume, boolean broadSwitch)

/**
*  InstructionsAnalysisUtil.java   指令解码工具
* InstructionsEnclosedUtil.java  指令编码工具
* 广西项目中没怎么用,就收个心跳
**/

IP话筒通话协议

应用场景
主要应用于服务器平台和终端之间的交互通信,基于IP/TCP传输协议。
数据结构设计
消息体的数据结构参考《ip话筒通信协议----商讨版2.0》
在代码中使用 byte 数组存放指令,构造消息体

终端心跳、一般应答

实现逻辑
客户端发送心跳,服务端回复,客户端收到回复再做其他业务逻辑
接口文件
App与服务器连接逻辑在 ClientConnectManager.java 类里
心跳实现使用socket框架

数据包格式

数据包的格式构造

指令数据包:fe fd 01 00 00 00 00 01 01 01 00 df 00 00 00 00 00 00 00 00 00 00 57 01 00 01 00 00 00 00 00 00 00 00 00 00 57 01 01 00 66 00 00 00 00 00 00 00 00 00 00 00 00 20 19 06 25 00 01 04 03 01 01 01 01 01 32 5f 3f 5d a7 5f 3f 5d a7 01 02 00 40 72 74 73 70 3a 2f 2f 77 6f 77 7a 61 65 63 32 64 65 6d 6f 2e 73 74 72 65 61 6d 6c 6f 63 6b 2e 6e 65 74 2f 76 6f 64 2f 6d 70 34 3a 42 69 67 42 75 63 6b 42 75 6e 6e 79 5f 31 31 35 6b 2e 6d 6f 76 00 4a 5f 3f 5d a7 00 00 00 00 00 00 d4 51 83 10 fd 6e 54 a2 e6 26 8e 70 f2 ae ff a0 fb 3c fb 00 e9 23 0f 16 e8 0f 9b 2b 27 61 0d 52 3a b8 c9 52 c5 4c 8d 48 6b 8c b8 b7 ab e0 80 5c de d1 1a f1 60 3e 72 ce 0b 38 75 20 53 77 19 e1 9b c4 79 e7

数据包解析

根据IP传输协议对指令数据包进行解析,根据项目要求会稍有改动
消息头

  • fe fd:包头标记
  • 01 00:协议版本号
  • 00 00 00 01:会话标识
  • 01:数据包类型,01 代表开始播发 0x01
  • 01:签名标识
  • 00 df:df十六进制换算成十进制是223
    消息体
  • 00 00 00 00 00 00 00 00 00 00 57 01:数据源对象编码
  • 00 01:数据目标对象数量
  • 00 00 00 00 00 00 00 00 00 00 57 01:数据目标对象编码序列
  • 01:业务数据类型
  • 00 66:业务数据长度
  • 业务数据 - 开始播发
  • 00 00 00 00 00 00 00 00 00 00 00 00 20 19 06 25 00 01:应急广播消息编码,广东18位,广西15位,具体看平台用多少位
  • 04:广播类型-应急广播
  • 03:事件级别-较大
  • 01 01 01 01 01:事件类型,默认“11111”
  • 32:音量,十六进制转换为十进制是 50 音量
  • 5f 3f 58 67:开始时间,将指定格式的时间时间转换为 byte 数组,yyyy-MM-dd HH:mm:ss
  • 5f 3f 58 67:结束时间,将指定格式的时间时间转换为 byte 数组,yyyy-MM-dd HH:mm:ss
    辅助数据内容
  • 01:辅助数据数量
  • 02:辅助数据类型-音频
  • 00 40:辅助数据长度,十进制64,数组接下来的64位就是广播内容
    音频rtmp地址字符串的 byte 数组
  • 72 74 73 70 3a 2f 2f 77 6f 77 7a 61 65 63 32 64 65 6d 6f 2e 73 74 72 65 61 6d 6c 6f 63 6b 2e 6e 65 74 2f 76 6f 64 2f 6d 70 34 3a 42 69 67 42 75 63 6b 42 75 6e 6e 79 5f 31 31 35 6b 2e 6d 6f 76
    byte 数组演示用的rtmp地址
    "rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov" .getBytes()
    视频也是 rtmp 地址,文本/图片id,也是将字符串转为byte数组
    验签数据
    00 4a 5f 3f 5d:此处开始往后就是验签数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值