Hola a todos, como estan?
Estoy haciendo un reproducor en python3, y tengo un pequeño problema.
La cosa es que quiero reproducir una serie de canciones las cuales estan en una lista, ya saben, hice lo que cualquiera haria, poner un for y dentro de ese for que vaya tomando el string y vaya reproduciendo todo... Pero no funciona
Les dejo el codigo :)
#Librerias
#pygame
#mutagen
#tinytag
from pygame import mixer
from mutagen.mp3 import MP3
from tinytag import TinyTag
import os
import time
clear = lambda :(os.system("clear"))
songs = ["path_song","path_song2"]
mixer.init()
for song in songs:
tag = TinyTag.get(song)
mixer.music.load(song)
mixer.music.set_volume(0.2)
mixer.music.play()
song_duration = MP3(song)
song_duration = song_duration.info.length
song_duration = round(song_duration)
def duration_time(song_duration):
end_minute = 0
end_beginning = 0
end_aux_duration = 0
while True:
if end_aux_duration == song_duration:
break
else:
end_beginning = end_beginning + 1
end_aux_duration = end_aux_duration + 1
if end_beginning == 60:
end_minute = end_minute + 1
end_beginning = end_beginning - 60
end_aux_duration = str(end_minute),":",str(end_beginning).zfill(2)
end_duration = "".join(end_aux_duration)
minute = 0
beginning = 0
aux_duration = 0
while True:
if aux_duration == song_duration:
break
else:
beginning = beginning + 1
aux_duration = aux_duration + 1
time.sleep(1)
clear()
if beginning == 60:
minute = minute + 1
beginning = beginning - 60
print(f"{minute}:",f"{beginning}".zfill(2), " ------ O ------ ",end_duration)
duration_time(song_duration)
Gracias!!!
pygame.mixer.music.play(-1)
un entero positivo indicaría repetir n número de veces.
la lista la puedes cargar
pygame.mixer.music.load inicio y
pygame.mixer.music.queue añadir y que todo forme parte de un solo conjunto.
mira, cargarlo así quiero decir: fuente (https://riptutorial.com/pygame/example/24564/example-to-add-music-playlist-in-pygame)
import pygame
import time
pygame.mixer.init()
pygame.display.init()
screen = pygame.display.set_mode ( ( 420 , 240 ) )
playlist = list()
playlist.append ( "music3.mp3" )
playlist.append ( "music2.mp3" )
playlist.append ( "music1.mp3" )
pygame.mixer.music.load ( playlist.pop() ) # Get the first track from the playlist
pygame.mixer.music.queue ( playlist.pop() ) # Queue the 2nd song
pygame.mixer.music.set_endevent ( pygame.USEREVENT ) # Setup the end track event
pygame.mixer.music.play() # Play the music
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.USEREVENT: # A track has ended
if len ( playlist ) > 0: # If there are more tracks in the queue...
pygame.mixer.music.queue ( playlist.pop() ) # Q
eso del -1 y positivos ... no se cómo funcionaría en lista. Es imaginación que piense eso con lista. He leido por ahí que con un load puedes cargar directamente una lista. Pero no puedo afirmar o si he leido cuentos urbanos.
si me quieres hacer caso, céntrate en un solo pygame.mixer.music.play() sólo soy aficionado
SaludOS