喜马拉雅WiFi音响绑定及通讯协议初稿

8 篇文章 0 订阅
2 篇文章 0 订阅

喜马拉雅WiFi音响绑定及通讯协议初稿

通讯协议

0x5A数据长度框架版本协议类型设备编码Mac地址数据帧序列号保留字数据类型数据内容检验码FCS
1字节2字节1字节1字节8字节6字节4字节8字节2字节N字节2字节

通讯Json格式

{ 
 "cmd": 0 ,//命令码
"code": 0,  //返回码
"msg": "",  //状态消息
"data": ......  //数据节点
}

参数说明

参数名称是否必须字段类型参数说明
cmdYESint命令码
codeNOint返回码
msgNOString状态消息
dataNOString数据节点

全局命令码

每一种操作对用一个命令码,用作标识指令。

全局命令码说明如下:
命令码(十六进制)十进制说明
0x00011添加歌曲
0x00022App查询歌曲列表
0x00033升级操作
0x00044播放
0x00055关机
0x00066静音/解除静音
0x00077音量+
0x00088音量-
0x00099切换aux状态
0x000a10下一曲
0x000b11上一曲
0x000c12暂停
0x000d13App查询播放状态
0x000e14WIFI 无线简易连接
0x000f15设备回复心跳
0x400f16399App发送心跳
0x001117palyMode(顺序播放/随机播放/列表循环/单曲循环/)
0x001218音量设置(直接设置音量值)
0x001319设备推送播放状态
0x001420设备推送播放列表
0x001521拖拽进度条

全局返回码

每次调用接口时,可能获得正确或错误的返回码,可以根据返回码信息调试接口,排查错误。

全局返回码说明如下:
0请求成功
200无错误
400不支持此接口
401JSON数据解析错误

示例

字符串

{ 
"cmd": 0x0001 ,//命令码
"code": 0,  //返回码
"msg": "",  //状态消息
"data": "This is string"  //数据节点
}

整形参数

{ 
"cmd": 0x0001 ,//命令码
"code": 0,  //返回码
"msg": "",  //状态消息
"data": 1  //数据节点
}

对象

{ 
"cmd": 0x0001 ,//命令码
"code": 0,  //返回码
"msg": "",  //状态消息
"data":  {
      "ssid":"TP-link",  //连接的路由名称
      "password":"12345678",  //路由密码,需要加密
  }  
}

数组

{ 
"cmd": 0x001 ,//命令码
"code": 0,  //返回码
"msg": "",  //状态消息
"data":[
  {
        "id"      :   "0"
        "name" : “xxxx",
        "artist" : “xxxx",
        "album_title": “xxxx",
        "cover_url_small”:“xxxx",
        "cover_url_middle":"xxxx",
        "cover_url_large":"xxxx",
        "url":"xxxxxxxxx"  {详细规格见规格说明url部分},
  },
  {
        "id":"1"
        "name":"xxxx1",
        "artist":"xxxx1",
        "album":"xxxx1",
        "cover_url_small":"xxxx",
        "cover_url_middle":"xxxx",
        "cover_url_large":"xxxx",
        "url":"xxxxxxxxxx"{详细规格见规格说明url部分},
  }
   ]
}

指令说明

一、设备基础指令

  1. App扫描设备
0x5A数据长度框架版本协议类型设备编码Mac地址数据帧序列号保留字数据类型数据内容检验码FCS
5A0022400100000000000000000000000000002000000000000000000000000405data381a

- 命令字:0x0405
- data区:NULL

  1. 设备回复自身信息
0x5A数据长度框架版本协议类型设备编码Mac地址数据帧序列号保留字数据类型数据内容检验码FCS
5Axxxx400100000199001b0300d8f710e019b00000000000000000000000000305dataxxxx

- 命令字:0x0305
- 厂商ID:0x0199
- 大分类:0x1b
- 小分类:0x03

  1. App发送心跳包
0x5A数据长度框架版本协议类型设备编码Mac地址数据帧序列号保留字数据类型数据内容检验码FCS
5Axxxx400100000000000000000000000000002000000000000000000000000104dataxxxx

- 命令字:0x0104
- data区:json

示例:

    { 
     "cmd": 0x400f ,//命令码
    "code": 0,  //返回码
    "msg": "",  //状态消息
    "data": ......  //数据节点
    }
  1. 设备回复心跳
0x5A数据长度框架版本协议类型设备编码Mac地址数据帧序列号保留字数据类型数据内容检验码FCS
5Axxxx400100000000000000000000000000000000000000000000000000000204dataxxxx
  • 命令字:0x0204
  • data区:json

示例:

    { 
     "cmd": 0x000f ,//命令码
    "code": 0,  //返回码
    "msg": "",  //状态消息
    "data":  {
              "deviceId": "SPK设备序列号"
          }  
    }

二、App主动控制终端指令

1.App控制终端

0x5A数据长度框架版本协议类型设备编码Mac地址数据帧序列号保留字数据类型数据内容检验码FCS
5Axxxx400100000000000000000000000000000000000000000000000000000104dataxxxx
  • 命令字:0x0104
  • data区:json数据

    示例:

    { 
     "cmd": 0x00xx ,//命令码
    "code": 0,  //返回码
    "msg": "",  //状态消息
    "data": ......  //数据节点
    }
    

2.终端回复App

0x5A数据长度框架版本协议类型设备编码Mac地址数据帧序列号保留字数据类型数据内容检验码FCS
5Axxxx400100000000000000000000000000000000000000000000000000000204dataxxxx
  • 命令字:0x0204
  • data区:json数据

    示例:

    { 
     "cmd": 0x00xx ,//命令码
    "code": 0,  //返回码
    "msg": "",  //状态消息
    "data": ......  //数据节点
    }
    

三、终端主动发送控制数据给App

1.周期上传运行数据

0x5A数据长度框架版本协议类型设备编码Mac地址数据帧序列号保留字数据类型数据内容检验码FCS
5Axxxx400100000000000000000000000000000000000000000000000000000105dataxxxx
  • 命令字:0x0105
  • data区:json数据

    示例:

    { 
     "cmd": 0x0013 ,//命令码
    "code": 0,  //返回码
    "msg": "",  //状态消息
    "data": ......  //数据节点
    }
    

音箱数据模型

一、歌单

参数说明

参数名称是否必须字段类型参数说明
idint歌曲ID
namestring演唱者
artistString艺术家
album_titleString专辑标题
lrc_idString歌词ID
image_url_smallString歌曲海报1
image_url_middleString歌曲海报2
image_url_largeString歌曲海报3
macStringMac地址
total_timeint歌曲时长
album_idint专辑ID
utypeint比如 虾米音乐 考虑 喜马拉雅 之类的
uriint歌曲URL
downloadurlString下载url

二、播放状态

参数说明

参数名称是否必须字段类型参数说明
id 是int歌曲ID
mtypeString虾米,百度云盘,本地音乐…
p_statusint“0/1/2/3/4”, //准备播放,播放,暂停,停止,播放结束(用于网络收音机)
typeString当前播放源(预设preset),收藏,实时推送
namestring演唱者
artistString艺术家
albumString专辑
next_idint下一首歌曲id
total_timeint歌曲总时间
current_timeint歌曲当前播放时间
play_modeint模式(//顺序播放/随机播放列表循环/单曲循环/)
volumeint音量

绑定流程

这里写图片描述
点击看大图

[原文链接地址]http://blog.csdn.net/xxl6097/article/details/50127949

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaxiaoli_2013

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值