CATALOG

芯步的开放接口采用统一的设备指令下发机制,语音播放/暂停控制通过特定的 order 命令字段实现。以下方案涵盖接口调用流程、核心命令格式及代码示例。

解决方案:对接智能30W壁挂远程控制语音音箱实现语音播放暂停控制

1. 概述

智能30W壁挂远程控制语音音箱(以下简称“语音音箱”)通常支持通过网络(Wi-Fi/Ethernet)接收控制指令。通过芯步开放平台,您可以使用通用的HTTP API向设备下发指令。

核心逻辑:通过向设备发送特定的JSON命令(order 参数),控制音箱的媒体播放状态(如播放、暂停、停止、下一曲等)。

2. 对接准备

在开始开发前,请确保您已在芯步控制台完成以下准备:

  • 获取 AppID 与 AppSecret:在的“开发设置”中获取。

  • 获取设备ID (Device ID):在控制台设备列表或设备外壳标签上获取音箱的唯一ID。

  • 网络配置:确保音箱已联网(通过网线或Wi-Fi)且状态为“在线”。

3. 接口鉴权与请求方式

芯步开放接口采用URL携带签名的方式鉴权。

  • 请求地址https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}

  • 请求方法:POST (Content-Type: application/json)

  • 签名算法

    1. 拼接字符串:str = md5(AppSecret) + ts

    2. 计算签名:sign = md5(str)(注:ts为当前Unix时间戳(秒),md5结果为32位小写)

4. 核心控制指令详解

针对“播放/暂停”控制,您需要在请求体中指定 deviceorder 参数。虽然不同批次的音箱指令集可能略有差异,但根据芯步通用语音设备接口规范,以下为标准的控制方法:

动作命令(Order) 结构说明
播放{"play":"true"}{"status":"start"}恢复播放当前暂停的音频
暂停{"pause":"true"}{"status":"pause"}暂停正在播放的音频
停止{"stop":"true"}停止播放并释放资源
播报文本{"play:gbk:16":"你好"}TTS语音合成播报,其中16为音量
设置音量{"volume":80}设置音量大小(0-100)

注意:具体的 order 字段名称(如究竟是 play 还是 status),请以您购买批次对应的《产品手册》中的“支持命令”章节为准

5. 实操步骤与代码示例

以下以“暂停播放”为例,演示如何通过代码控制设备。

步骤 1:计算签名假设 AppSecretabc123,当前时间戳 ts1710000000

  • md5(AppSecret) = e99a18c428cb38d5f22e03c8f4b2e5d9

  • 待加密串 = e99a18c428cb38d5f22e03c8f4b2e5d9 + 1710000000

  • sign = md5(待加密串) = xxxxxxxxxxxx

步骤 2:构建请求Body

步骤 3:发起HTTP请求(Python示例)

6. 常见问题与排错

  1. 返回 code:200 但音箱没反应?

    • 200 仅代表平台收到了指令并转发给了设备,不代表设备执行成功。请检查设备是否在线。

    • 检查 order 中的字段名是否与产品手册完全一致(大小写敏感)

  2. 签名错误 (code:5006)

    • 请确认 ts秒级时间戳(10位数字),非毫秒级(13位)。

    • 双重MD5的顺序:先对 Secret 做 MD5(结果为小写32位),拼接 ts 字符串,再整体 MD5

  3. 对于“播放/暂停”状态同步

    • 如果音箱本身没有状态反馈接口,您在业务侧维护一个状态标志(isPlaying),通过下发 playpause 的时机来记录当前状态,以此实现“暂停/播放”的切换逻辑。

7. 总结

通过芯步开放接口控制30W壁挂音箱的播放与暂停,核心在于 签名鉴权正确构造 order 指令

  • 实现路径:HTTP POST -> 携带签名 -> Body 包含 device 和 order。

  • 关键指令{"pause":"true"} / {"play":"true"}

您在正式对接前,先在芯步控制台的“API调试”功能中验证指令的有效性,确认无误后再集成到业务代码中。