Python - Reproductor de Musica - reproducir cola (Pygame Mixer)

 
Vista:
sin imagen de perfil
Val: 233
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

Reproductor de Musica - reproducir cola (Pygame Mixer)

Publicado por smn (62 intervenciones) el 13/12/2020 18:29:57
Muy buenas gente
tengo este codigo y estoy tratando de que el reproductor mediante una opcion seleccionada empiece a reproducir musica aleatoriamente pero no logro hacerlo


1
2
3
4
5
6
7
8
9
10
11
def filtrar_archivos_carpeta_musica():
    """
    Funcion que permite listar un directorio y extraer todos los archivos con extension .mp3 y agregarlos a una lista
    """
 
    directorio = r"C:\Users\salva\Music"
    extension = r".mp3"
 
    canciones = [_ for _ in os.listdir(directorio) if _.lower().endswith(extension)]
    #print(canciones)
    return canciones



El codigo que esta comentado es lo que intente pero solo deja en cola una cancion y quiero que deje en cola todas las canciones que se encuentran en la carpeta musica

en resumen que cuando termine una cancion siga con la siguiente automaticamente


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
from pygame import mixer
import funciones_basicas as fn
import random
import os
 
def menu_pygame():
    print(
    """
    Seleccione una opcion
    1 - Reproducir Musica Aleatoriamente
    2 - Escoger Cancion
    3 - Retroceder(No Disponible)
    4 - Pausar
    5 - Sacar pausa
    6 - Salir
    """)
 
 
    def listar_canciones():
        contador = 1
        for i in fn.filtrar_archivos_carpeta_musica():
            print(f"{contador} - Cancion: {i}")
            contador += 1
        print()
 
 
    def escoger_cancion():
        if(mixer.get_init()):
            mixer.music.stop()
 
        print("Selecciona el numero de una cancion\n")
        listar_canciones()
        print("0 - Menu Principal")
 
        opcion = None
 
 
        try:
            opcion = int(input("> "))
        except Exception as e:
            print(e)
            escoger_cancion()
 
 
        if(opcion == 0):
            menu_pygame()
        else:
            try:
                os.system("cls")
                cancion = fn.filtrar_archivos_carpeta_musica()[opcion - 1]
                mixer.init()
                mixer.music.load(rf"C:\Users\salva\Music\{cancion}")
                mixer.music.set_volume(0.7)
                mixer.music.play()
            except Exception as e:
                print("Por favor elige un numero de cancion que exista")
                escoger_cancion()
 
 
    def cancion_aleatoria(numero_random):
        os.system("cls")
        cancion = fn.filtrar_archivos_carpeta_musica()[numero_random - 1]
        mixer.init()
        mixer.music.load(rf"C:\Users\salva\Music\{cancion}")
        mixer.music.set_volume(0.7)
        mixer.music.play()
        print(cancion)
 
 
        #i = ""
        #ruta = rf"C:\Users\salva\Music\{i}"
        #for i in fn.filtrar_archivos_carpeta_musica():
        #    ruta += i
        #    mixer.music.queue(ruta)
        #    print(ruta)
        #    i = ""
        #    ruta = rf"C:\Users\salva\Music\{i}"
 
 
 
 
    opcion = 0
 
    try:
        opcion = int(input("\n> "))
    except Exception as e:
        print("Por favor solo ingrese numeros")
        menu_pygame()
 
 
    numero_random = random.randint(0,len(fn.filtrar_archivos_carpeta_musica()))
 
 
    if(opcion == 1):
        cancion_aleatoria(numero_random)
 
        #mixer.music.queue(rf"C:\Users\salva\Music\{cancion}")
 
    elif(opcion == 2):
        os.system("cls")
        escoger_cancion()
 
    elif(opcion == 3):
        pass
 
 
    elif(opcion == 4):
        os.system("cls")
        mixer.music.pause()
        print("Se pauso la cancion")
 
 
    elif(opcion == 5):
        os.system("cls")
        mixer.music.unpause()
        print("Se quito la pausa")
 
 
    elif(opcion == 6):
        os.system("cls")
        mixer.music.stop()
        exit()
 
if __name__ == '__main__':
    while True:
        menu_pygame()
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder