VisualHMI Audio-Wiedergabe: Play _ sound-Serie und MP3 - Auto-Streaming

kostenlosKostenloses technisches Material

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

Audio-Wiedergabe - API: Spielen Sie Musikdateien auf SD / U-Laufwerk und arbeiten mit der Player-Steuerung für einen vollständigen Musik-Player (Wiedergabe / Pause / oben und unten / Fortschrittsleiste / Lautstärke).

1. API Gesamtübersicht

FunktionBeschreibung
play_sound(filename)Abspielen von Audio, absoluter Pfad (z. B. "1: /music / xx.mp3")
stop_sound()Abspielen beenden
pause_sound()Pausen
resume_sound()Wiedergabe fortführen

2. Player Control Adresstabelle

AdresseZweck
LW1000Seite nach rechts
LW1001Vorherige / Nächste
LW1002Wiedergabe / Pause (Bit-Status - Anzeige: 0 - Pause / 1 - Fortsetzung)
LW1003Aktuelle Seite
LW1004Gesamtseitenzahl
LW1005SD Stammverzeichnis Lieder vorhanden (Bit-Status)
LW1100 ~ 1200Textliste des Titels
LW1240Aktuelle Wiedergabezeit
LW1250Gesamtzeit
LW1006Wiedergabefortschrittsleiste
LW0140Lautstärke

3. Lautstärke Durchsuchen von SD-Kartensongs

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. Wiedergabe-Steuerungslogik

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
      -- 上一首/下一首:切换 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()     -- 检测播放状态,播完自动下一首
end
drei Gruben:1 Der Pfad muss Gerätpräfix(M-Serie 1: = SD / 2: = USB / 3: = Internal Flash) haben, "1: / music / a.mp3" stimmt, "1: music / a.mp3" falsch;2 Nach der Wiedergabe wird nicht automatisch ein Stück abgeschnittenund muss den Wiedergabestatus in on_run abfragen (on_video_notify ähnlicher Mechanismus);3 Audio-Formate werden in der Firmware-Unterstützungslisteangezeigt, nicht unterstützte Formate werden stumm fehlschlagen - versuchen Sie es mit einer bereits ausgestrahlten Datei.

Aus dem VisualHMI-Entwicklungsdokument von Guangzhou Dacai Technology (hmi-doc.gz-dc.com) LUA-Tutorial "Audio Playback" zusammengestellt, das Urheberrecht liegt bei Dacai Technology.

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.