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

kostenlosKostenloses technisches Material

Dieser Inhalt ist direkt lesbar und eignet sich für das Grundlagenlernen und die Suche.

🌐 Diese Seite ist noch nicht auf Deutsch verfügbar. Die chinesische Version wird angezeigt. Zurück zur chinesischen Seite.
本文目录
  1. 1. 1. API 总表
  2. 2. 2. 播放器KontrollenAdresse表
  3. 3. 3. 遍历 SD 卡歌曲
  4. 4. 4. 播放控制逻辑

音频播放 API:播放 SD/U 盘里的Musik.文件,配合播放器Kontrollen做vollständig的Musik.播放器(播放/暂停/上下首/Fortschritt Artikel/音Quantität)。

1. API 总表

函数 说明
play_sound(filename) 播放音频,绝对路径(如 “1:/music/xx.mp3″)
stop_sound() Stopp!播放
pause_sound() 暂停
resume_sound() 继续播放

2. 播放器KontrollenAdresse表

Anschrift 用途
LW1000 左右翻页
LW1001 上一首/下一首
LW1002 播放/暂停(位Status指示灯:0-暂停/1-继续)
LW1003 gegenwärtig页
LW1004 总页数
LW1005 SD 根目录是否有歌(位Status)
LW1100~1200 歌名Text列表
LW1240 播放gegenwärtigZeit
LW1250 总Zeit
LW1006 播放Fortschritt Artikel
LW0140 音Quantität

3. 遍历 SD 卡歌曲

musicNameListTb = {}      -- 歌名列表缓存
curPlayIndex = 1

function on_sd_inserted(dir)
  list_dir(dir)           -- 列 SD 卡根目录
end

function on_list_dir(path, filename, type, fsize)
  if type == 1 then
    local ext = string.sub(filename, -4)
    if ext == ".mp3" or ext == ".wav" then
      table.insert(musicNameListTb, filename)
      set_uint16(VT_LW, 0x1005, 1)   -- 有歌标志
    end
  end
end

4. 播放控制逻辑

function on_update(slave, vtype, addr)
  if vtype == VT_LW then
    if addr == 0x1002 then
      local v = get_uint16(VT_LW, 0x1002)
      if v == 1 then
        play_sound("1:/music/"..musicNameListTb[curPlayIndex])
      else
        pause_sound()
      end
    elseif addr == 0x1001 then
      -- 上一首/下一首:Wechseln curPlayIndex 后重新播放
      local v = get_uint16(VT_LW, 0x1001)
      if v == 1 and curPlayIndex > 1 then
        curPlayIndex = curPlayIndex - 1
      elseif v == 2 and curPlayIndex < #musicNameListTb then
        curPlayIndex = curPlayIndex + 1
      end
      play_sound("1:/music/"..musicNameListTb[curPlayIndex])
    end
  end
end

function on_run(screen)
  updatMisPlayState()     -- 检测播放Status,播完自动下一首
end
三个坑:①路径必须带Ausrüstung前缀(M 系列 1:=SD/2:=U盘/3:=内部Flash),「1:/music/a.mp3」对、「1:music/a.mp3」错;②播放完不会自动切下一首,要自己在 on_run 里轮询播放Status(on_video_notify 类似机制);③音频Das Format按固件支持列表来,不支持的Das Format会静默失败——先拿一个已知能播的文件试。

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

来源/Werkzeuge信息 —— Klick auf展开
来源 Modbus Chinesisches Netzwerk(modbus.cn) —— Inländisch führend.ModbusKommunikationsprotokoll Technologie Gemeinschaft Klassifizierung Das Drehbuch von LUA / Entwicklung von HMI / HMI 字数 1404 字 · 阅读约 4 Unterteilung钟 更新 2026-08-05 永久链接 https://www.modbus.cn/51509.html
Empfohlene Werkzeuge: Modbus Debugger-Assistent WeChat-Applet
Modbus Chinesisches Netzwerk官方推出的Modbus Debugging-Tools,支持 Modbus RTU/TCP 实时KommunikationTests、Register.读写、线圈控制、Daten监控和MeldungUnterteilung析。 keine Installation erforderlich,Mikro-Suche「Modbus DebuggingAssistenten.」Benutzt werden kann.。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
Sollte man diese Informationen für ein echtes Projekt verwenden?

Gehen Sie zum Tool Center, um Nachrichten zu analysieren, CRC-Prüfungen und Geräte-Debugging zu erledigen, oder senden Sie Anforderungen für Auswahl - und Zugangsvorschläge.

Ingenieur Mitglied

Verwandeln Sie diesen Artikel in ein umsetzbares Debuggermaterial

Erweiterte Nachrichtenanalyse, Paket-Downloads, Codebeispiele, Engineering-Szenarien und Priority-Technischer Support sind für die Real-Projekt - Bereitstellung möglich.

Unbegrenzte Werkzeuge
Datenpaket und Codepaket
Vollständige Engineering Case-Basis
Vorrangiger Zugang zum technischen Support

Antwort veröffentlichen

Ihre E-Mail - Adresse wird nicht öffentlich gemacht. Erforderliche Elemente wurden verwendet * markiert.