Aquest codi en Python està dissenyat per a una Raspberry Pi i té la funció de mostrar el títol de la cançó que s’està reproduint en VLC a través d’una pantalla OLED (SSD1306). Aquí tens una explicació detallada:


Explicació del codi

  1. Importació de llibreries
    • time: Per gestionar els retards (sleep).
    • psutil: No s’utilitza en el codi, però serveix per gestionar processos.
    • subprocess: Executa ordres del sistema, en aquest cas per obtenir l’aplicació activa.
    • requests: Per fer peticions HTTP al servidor de VLC.
    • luma.oled: Per controlar la pantalla OLED.
    • PIL.ImageFont: Per mostrar text a la pantalla OLED.

  1. Variables Globals
    • VLC_URL: Direcció URL del servidor de VLC a la Raspberry Pi (localhost:8080).
    • VLC_PASSWORD: Contrasenya per accedir a VLC (raspberry).

  1. Funció get_active_application()
    • Utilitza xdotool (eina per controlar finestres en Linux) per obtenir el nom de l’aplicació activa.
    • Si falla, retorna un missatge d’error.

  1. Funció get_vlc_song()
    • Fa una petició HTTP a VLC per obtenir informació de la cançó actual.
    • Extreu el nom de l’arxiu (filename).
    • Calcula el temps actual de reproducció en minuts i segons.
    • Calcula la posició percentual de la cançó.
    • Retorna una cadena amb el format: NomArxiu XX% - MM:SS
    • Si hi ha un error amb la connexió, retorna "Error VLC".

  1. Funció display_text(device, text)
    • Mostra el text a la pantalla OLED.
    • Divideix el text en dues línies si és massa llarg.
    • La tercera línia sempre mostra els últims 11 caràcters del text (pot ser útil per veure el temps).

  1. Funció main()
    • Inicia la connexió amb la pantalla OLED (via I2C).
    • Entra en un bucle infinit (while True):
      1. Obté el títol de la cançó de VLC.
      2. Mostra el títol a la pantalla OLED.
      3. Espera 2 segons abans de tornar-ho a fer.

Com funciona el programa

Quan executes vlc.py:

  1. El programa es connecta a la pantalla OLED.
  2. Consulta el VLC per veure quina cançó s’està reproduint.
  3. Mostra el títol de la cançó i el temps actual a la pantalla OLED.
  4. Cada 2 segons, actualitza la informació.

Requisits

  • VLC ha d’estar executant-se amb interfície web activada (--extraintf http).
  • Paquets necessaris: pip install psutil requests luma.oled xdotool
  • Pantalla OLED SSD1306 connectada per I2C a la Raspberry Pi.

Aquest codi és útil per projectes de domòtica o sistemes multimèdia basats en Raspberry Pi! 😃

img_20250209_2058174370676728266130034