Skip to content

播放声音

播放音频文件,支持队列播放、播放控制命令和文件管理,通过指定声卡输出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命令会立即停止播放并清空所有队列
  • 节点关闭时会自动停止播放并清理资源
  • 建议先在配置界面上传音频文件再使用

蜀ICP备2025139593号