VisualHMI 音频播放:play_sound 系列与 MP3 自动连播

免费免费技术资料

这篇内容可直接阅读,适合用于基础学习和搜索引流。

本文目录
  1. 1. 1. API
  2. 2. 2. 播放器画面控件表
  3. 3. 3. 案例:自动连播列表

播放 SD 卡上的 MP3:播放/停止/暂停/继续,加音量控制。适合语音提示、告警音、操作反馈。

1. API

函数 说明
play_sound(filename) 播放音频文件(绝对路径,含盘符)
stop_sound() 停止播放
pause_sound() 暂停(保留位置)
resume_sound() 从暂停位置继续

VisualHMI 音频播放:play_sound 系列与 MP3 自动连播插图

2. 播放器画面控件表

Address 控件/用途
LW1000 上一页/下一页
LW1001 上一首/下一首
LW1002 播放/暂停切换
LW1003 / LW1004 当前页 / 总页数
LW1005 SD 卡是否有歌曲(0/1)
LW1100~LW1200 歌名(128 字节)
LW0140 音量
LW0143 播放进度

3. 案例:自动连播列表

on_init 列举 SD 卡歌曲到缓存表;点击播放、上一首/下一首切换;on_run 里循环检测播放状态,播完自动下一首:

musicNameListTb = {}
curPalyIindex = 1
_IS_PLAYING_ = 0

function on_init()
  list_dir("1:/music")   -- 列举音乐目录
end

function on_list_dir(path, filename, type, fsize)
  if type == 1 and string.find(filename, ".mp3") then
    table.insert(musicNameListTb, path .. "/" .. filename)
  end
end

function on_update(slave, vtype, addr)
  if vtype == VT_LW then
    if addr == 0x1001 then
      local key = get_uint16(VT_LW, 0x1001)
      if key == 0 then curPalyIindex = curPalyIindex - 1 end
      if key == 1 then curPalyIindex = curPalyIindex + 1 end
      if curPalyIindex < 1 then curPalyIindex = #musicNameListTb end
      if curPalyIindex > #musicNameListTb then curPalyIindex = 1 end
      stop_sound()
      play_sound(musicNameListTb[curPalyIindex])
    elseif addr == 0x1002 then
      local sw = get_uint16(VT_LW, 0x1002)
      if sw == 1 then
        _IS_PLAYING_ = 1
        play_sound(musicNameListTb[curPalyIindex])
      else
        _IS_PLAYING_ = 0
        pause_sound()
      end
    end
  end
end

function on_run(screen)
  updatMisucPlayState()  -- 循环检测播放状态, 播完自动下一首
end
音频三注意:①文件名路径必须带盘符(M系列 「1:/music/xx.mp3」);②SD 卡没插时 play_sound 无效果但不会报错,界面要靠 LW1005 隐藏控制;③同时只支持一个音频流,播放新文件前先 stop_sound()

整理自 广州大彩科技 VisualHMI 开发文档(hmi-doc.gz-dc.com)LUA 教程「音频播放」,版权归大彩科技所有。

来源/工具信息 —— 点击展开
来源 Modbus.cn — China's leading Modbus communication protocol technical community 分类 LUA 脚本 / 串口屏/HMI 开发 字数 1355 字 · 阅读约 4 分钟 更新 2026-08-04 永久链接 http://www.modbus.cn/en/51509.html
Recommended: Modbus Debug Assistant Mini Program
Modbus中文网官方推出的Modbus调试工具,支持 Modbus RTU/TCP 实时通信调试、寄存器读写、线圈控制、数据监控和报文分析。 无需安装,微信搜索「Modbus调试助手」即可使用。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
📝 作者声明
本文由 Modbus中文网技术团队 原创撰写,内容基于实际项目案例与技术文档,力求为读者提供准确、实用的参考信息。
把这篇资料用于真实项目?

进入工具中心进行报文解析、CRC 校验和设备调试,或提交需求获取选型与接入建议。

工程师会员

把这篇文章变成可执行的调试资料

开通后可使用高级报文解析、资料包下载、代码示例、工程案例和优先技术支持,适合真实项目交付。

高级工具不限次
资料包与代码包
完整工程案例库
优先技术支持入口

发表回复

Your email address will not be published. 必填项已用 * 标注