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
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
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


0