I'm looking to load a playlist and shuffle the files it contains.
Also, at the moment when I press my buttons, they tend to send the signal several times, I've tried time.sleep but it doesn't work.
As you can see, I'm not a programmer, I tried to make the beginning by myself, everything works not so bad except these two items.
Thank you very much for your help.
here is my code :
# -*- coding: utf-8 -*-
from gpiozero import Button
from signal import pause
import vlc
import subprocess
import random
# Définir le chemin des listes de lecture
playlist1_path = "/home/Lebargy/Desktop/Liste1.m3u8"
playlist2_path = "/home/Lebargy/Desktop/Liste2.m3u"
# Créer une instance VLC
instance = vlc.Instance()
# Modifier la commande VLC pour spécifier le plein écran et masquer les contrôles
commande_vlc = "cvlc"
# Ouvrir VLC avec la commande modifiée
subprocess.Popen(commande_vlc, shell=True)
# Charger les listes de lecture
media_list1 = instance.media_list_new(\[playlist1_path\])
media_list2 = instance.media_list_new(\[playlist2_path\])
random.shuffle(media_list1)
random.shuffle(media_list2)
# Créer un lecteur VLC
player = instance.media_player_new()
list_player = instance.media_list_player_new()
list_player.set_media_player(player)
player.set_fullscreen(True)
# Configurer le volume
player.audio_set_volume(480)
# Charger la première liste de lecture dans le lecteur par défaut
list_player.set_media_list(media_list1)
# Démarrer la lecture
list_player.play()
# Variable pour suivre l'état de la vitesse de lecture
vitesse_acceleree = False
# Définir une fonction de rappel pour gérer l'événement d'appui sur le bouton p1
def bouton_p1_callback():
list_player.stop()
list_player.set_media_list(media_list1)
list_player.play()
player.set_fullscreen(True)
# Définir une fonction de rappel pour gérer l'événement d'appui sur le bouton p2
def bouton_p2_callback():
list_player.next() # Passer à la piste suivante dans la liste de lecture.
# Définir une fonction de rappel pour gérer l'événement d'appui sur le bouton p3
def bouton_p3_callback():
list_player.stop()
list_player.set_media_list(media_list2)
list_player.play()
player.set_fullscreen(True)
# Définir une fonction de rappel pour gérer l'événement d'appui sur le bouton d'accélération
def bouton_p4_callback():
global vitesse_acceleree
if list_player.is_playing():
if not vitesse_acceleree:
player.set_rate(3) # Accélérer la lecture (vitesse 3x)
vitesse_acceleree = True
else:
player.set_rate(1) # Revenir à la vitesse normale
vitesse_acceleree = False
# Créer des instances de boutons pour les broches GPIO correspondantes
bouton_p1 = Button(21)
bouton_p2 = Button(2)
bouton_p3 = Button(20)
bouton_p4 = Button(14)
# Assigner les fonctions de rappel aux événements "when_pressed" des boutons
bouton_p1.when_pressed = bouton_p1_callback
bouton_p2.when_pressed = bouton_p2_callback
bouton_p3.when_pressed = bouton_p3_callback
bouton_p4.when_pressed = bouton_p4_callback
# Mettre en pause le script pour le maintenir en cours d'exécution indéfiniment
pause()