播放声音
播放音频文件,支持队列播放、播放控制命令和文件管理,通过指定声卡输出WAV格式音频。
输入
包含文件名或控制命令的消息对象。
输出
播放状态消息。
详细说明
此节点用于播放音频文件,支持队列播放、播放控制命令和文件管理,通过指定声卡输出WAV格式音频。
输入消息格式
播放音频文件:
javascript
msg.filename = "alarm.wav";
return msg;
播放控制命令:
javascript
msg.command = "pause"; // 暂停播放
msg.command = "resume"; // 恢复播放
msg.command = "stop"; // 停止播放并清空队列
msg.command = "clear"; // 清空等待队列
return msg;
参数说明
- filename: 要播放的音频文件名,必须为WAV格式
- command: 播放控制命令
- pause: 暂停当前播放
- resume: 恢复播放队列
- stop: 停止播放并清空所有队列
- clear: 清空等待队列,不影响当前播放
队列机制
- 最大队列: 支持最多10个音频文件排队等待播放
- 自动播放: 文件按添加顺序依次播放,无需手动控制
- 队列满处理: 超过10个文件时,新文件会被丢弃并返回dropped状态
- 状态跟踪: 每个文件都有状态标识(queued/played/failed/dropped)
声卡配置
- 音频口/功放: 通过audiocodec声卡输出
- HDMI: 通过ahubhdmi声卡输出
- 在节点配置界面选择合适的输出方式
文件管理
- 文件上传: 支持WAV格式文件上传,最大50MB
- 文件列表: 显示所有已上传的音频文件和大小
- 文件删除: 支持删除不需要的音频文件
- 存储位置: 音频文件存储在/root/audio-files目录
示例
播放状态消息:
javascript
// 文件加入队列
{filename: "alarm.wav", status: "queued", queuePosition: 1}
// 播放成功
{filename: "alarm.wav", status: "played"}
// 播放失败
{filename: "alarm.wav", status: "failed", error: "错误信息"}
// 队列已满被丢弃
{filename: "alarm.wav", status: "dropped", reason: "queue_full"}
应用场景
- 告警提示: 系统异常、设备故障等音频告警
- 语音提醒: 操作提示、状态通知等语音播报
- 背景音乐: 环境音效、欢迎音乐等
- 工业现场: 生产提示音、安全警报等
注意事项
- 确保音频文件为WAV格式,文件名不含特殊字符
- 队列最大长度为10,超出会丢弃新的播放请求
- stop命令会立即停止播放并清空所有队列
- 节点关闭时会自动停止播放并清理资源
- 建议先在配置界面上传音频文件再使用