# 蓝小飞智能音箱开发者模式指引
# 说明
为了使开发者可以在音箱上运行自己开发的应用,iFLYOS 提供了蓝小飞智能音箱以完成更高级的音箱定制功能。
如按照此指引操作,且查看了相关文档后,开发过程中仍遇到接入问题,可以通过iFLYOS工单或论坛咨询,我们会在12小时内响应回复。
iFLYOS工单:http://support.iflyos.cn/hc/request/new/ (opens new window)
iFLYOS论坛:http://support.iflyos.cn/hc/community/topic/ (opens new window)
如需更高效的技术支持,可选择购买为期2个月的 iFLYOS 技术支持包 (opens new window),购买了技术支持包的用户,可享受以下服务:
- 开通工单绿色通道;
- 问题咨询2小时内回复响应;
- VIP技术支持,优先回复解决开发中遇到的接入问题;
- 开通新需求评估通道,2个工作日内回复评估结论。
# 前期准备
# 了解iFLYOS设备接入
在进行二次开发之前,建议你先了解一下iFLYOS设备接入,避免因不了解系统造成设备不可用。
iFLYOS官网地址:https://www.iflyos.cn/ (opens new window)
iFLYOS设备接入参考文档:https://doc.iflyos.cn/device/ (opens new window)
# 在设备接入控制台创建一个设备
步骤参考: https://doc.iflyos.cn/device/console.html (opens new window)
注意
创建产品类型时,建议选择EVS网络协议,以便获得更多能力;
为了保证你的设备在小飞在线 App (opens new window)中可正常添加和配网,请确保:
a)在【设备控制台-设备能力】中开启蓝牙配网。
b)在【设备控制台-真机测试】中配置手机号白名单。
# 温馨提示
在使用开发者模式之前,请确认已知晓以下事项:
【升级固件】为保证能够使用我们最新的功能和更稳定的体验,请将音箱OTA更新至最新固件版本。完成配网后在APP设备管理页面点击检查更新即可。
进入过开发者模式并更改了
clientId
的设备,除了硬件问题将不享受其他保修服务。由于音乐服务与设备的
clientId
和deviceId
挂钩,修改clientId
后的音箱将无法使用该音箱自带的一年免费音乐服务。iFLYOS 的极客版音箱皆采用了在线更新固件能力,每天定时检查并自动更新。当你需要使用开发者模式,我们建议你更改
clientId
,以免在线更新覆盖了你的开发成果。注意:更改clientid可能导致无法进行保修,所以请谨慎使用开发者模式。
# 进入开发者模式
将音箱的电源线USB口插至电脑,等待音箱开机启动。建议使用一个独立供电,并且电流在1.5A 以上的USB HUB 接入,避免出现供电不足导致的不稳定现象。
# 可以做什么
通过开发者模式,你可以使用 adb工具(点击下载)
(opens new window) 执行 adb shell
命令连接到音箱,修改唤醒词及提示音效。
# 更换配置文件
配置文件名为
iFLYOS.json
,可通过以下命令,将取配置文件拉取到本地。adb pull /data/iflyos/iFLYOS.json <保存本地路径>
配置文件参数解释:
参数 说明 deviceID 设备的唯一ID,每个设备具备不同的deviceId,此ID用于OS的鉴权,请勿更改。如有出货需求可通过平台 (opens new window)选择您的设备解决方案,并填写您的联系方式,我们商务同事会联系您。 clientID 设备的clientID,从设备接入平台 (opens new window)中获取 clientSecret 设备的clientSecret,从设备接入平台 (opens new window)中获取 otaSecret 设备的OTA密钥,从设备接入平台 (opens new window)中获取 caeResPath 唤醒词文件的存放路径 完成修改后,可通过以下命令, 将修改后的配置文件推送至设备目录。
adb push <配置文件路径> /data/iflyos/iFLYOS.json
然后执行
adb shell sync
命令即可生效,注意iFLYOS.json
文件不要存放在有中文名称的本地路径下,否则有可能会导致adb push
失效。更换配置文件后,系统会优先应用配置文件中的参数,此时原有的授权信息会失效,需要重新授权绑定音箱。
注意
更换client_id完成,设备重启后,你需要为设备重新配置网络。在小飞在线 App (opens new window)中添加设备,选择相应产品,按照APP流程指引为音箱配置一个可用的 WLAN 网络。即可通过蓝小飞智能音箱体验你自己创建的设备的相关功能。
# 将自己的设备加入白名单
当你把设备更改成自己的ClientID后,需要在设备管理后台的“产品发布 - 设备ID”选项,把device id添加至白名单,设备才能完成鉴权操作。
# 更换自定义唤醒词
在蓝小飞智能音箱中,我们支持了自定义唤醒词的更换。
# 生成唤醒词资源
请访问自定义唤醒词平台 (opens new window)选择“平台通用唤醒词”生成你的专属唤醒词,后续只需在设备手动替换即可。
# 修改唤醒词资源
- 将生成好的唤醒词,push到/usr/share/iflyos/ivw/xiaofeixiaofei.bin路径下,即可替换默认唤醒词;
- 替换完成后,执行
adb shell sync
命令再重启音箱即可。
# 更换唤醒词后注意事项
蓝小飞智能音箱可作为IP结合产品,将磁片放置在蓝小飞智能音箱上,将会优先使用唤醒词“小飞小飞”。如果开发者已手动更换唤醒词,可拿下磁片或修改自己设备的clientID,即可体验更新后的默认唤醒词。
从产品设计上,蓝小飞智能音箱可以通过更换磁片(玩偶)输出对应的IP内容、定制唤醒词、对话人格、隐藏技能等。此能力无法通过开发者模式进行更改,有意向进行IP合作的用户/客户可以通过iFLYOS官网 (opens new window)联系商务进行洽谈。
# 更换开机欢迎音效
你可以在 TTS合成页面 (opens new window) 选择对应的发音人,生成专属开机欢迎语,推送至设备即可替换。
下载设备音频
adb pull /usr/share/iflyos/ring <保存本地路径>
替换音频
根据文件名寻找要替换的音频文件,将新的音频改名成与pull下来的文件同名
推送音频
adb push <资源文件路径> /usr/share/iflyos/ring
注意
- 完成替换后需执行
adb shell sync
命令生效; - 注意音频文件需转换为m4a格式;
- 替换ring目录下的音频后,需保持音频文件名前后一致。
- 完成替换后需执行
# EVS代码文件说明
EVS 实现了云端协议的基础功能,同时实现了比较复杂的设备逻辑(如灯效、音效焦点管理等),开发者可参考以下逻辑,在此基础上做二次开发。只需将拉取下来的文件进行修改,然后推送回设备即可在设备上体验。
文件目录:/usr/share/iflyos/iotjs/js
文件 | 说明 |
---|---|
evsAlertPlayer.js | 闹钟播放控制逻辑 |
evsAudioMgr.js | 音频焦点控制逻辑 |
evsAudioPlayer.js | 内容播放控制逻辑 |
evsAuthorizeMgr.js | 用户授权管理逻辑 |
evsCapAlarm.js | 本地闹钟端能力实现 |
evsCapAudioPlayer.js | 音频播放端能力实现 |
evsCapInterceptor.js | 拦截器端能力实现 |
evsCapRecognizer.js | 语音识别端能力实现 |
evsCapSpeaker.js | 本地播放器管理 |
evsCapSystem.js | 音箱系统控制管理能力实现 |
evsClient.js | 管理设备与服务端的连接,以及指令的接收和派发工作 |
evsContextMgr.js | 设备Context的维护 |
evsMediaPlayer.js | 本地播放器控制的基础实现 |
evsModuleConfig.js | 配网逻辑管理,包括wifi配置以及授权的过程控制 |
evsModuleInteraction.js | 用户交互逻辑管理,包括用户唤醒,用户按键,网络中断恢复等逻辑 |
evsModuleLed.js | 灯效管理 |
evsModuleStartup.js | 设备上电启动过程的逻辑管理,处理是否第一次启动,是否有授权,是否有网络等问题 |
evsPlayerHandler.js | 音频播放控制逻辑的基础实现 |
evsSoundPlayer.js | 本地TTS播放控制逻辑 |
main.js | 入口程序 |
文件目录:/usr/share/iflyos/iotjs/js/platform/MTK8516
文件 | 说明 |
---|---|
evsBleControl.js | 配网时的蓝牙控制逻辑 |
evsButtonControl.js | 按键控制逻辑 |
evsEffectPlayer.js | 本地音效播放控制逻辑 |
evsWifiControl.js | 配置wifi网络逻辑 |
# 常见问题
# 授权时显示无效应用
解决方法: 请确定以下事项:
- 请在设备接入控制台-设备能力处,已打开蓝牙配网;
- 请在设备接入控制台-真机测试处,在白名单中输入用于登录小飞在线的手机号。
# 蓝牙配网时无法配网成功
解决方法:请在设备接入控制台-设备能力处,打开蓝牙配网。