Я хочу дать пользователю возможность воспроизводить, приостанавливать, воспроизводить следующую или предыдущую песню. Если пользователь ничего не нажимает, следующая песня в списке должна воспроизводиться автоматически. В настоящее время программа останавливается для ввода от пользователя.
Я попытался воспроизвести песню в другом потоке и жду, когда пользователь введет выбор в основной теме. Но проблема в том, что основной поток ожидает ввода от пользователя перед воспроизведением следующей песни.
def music(file):
pygame.mixer.music.load(file)
pygame.mixer.music.play()
try:
while pygame.mixer.music.get_busy():
pygame.time.Clock().tick(0)
except:
pass
def pause():
print(file + " paused")
pygame.mixer.music.pause()
global set
set = 1
def playsong():
global set
global t1
print ("Playing song named : " + file)
if file != "" and set==0:
t1 = threading.Thread(target = music ,args=(file,))
t1.setName("audio bajao")
t1.start()
ch = 1
song_list = ["song1.mp3","song2.mp3"]
while((i < len(song_list)) and (ch != 5) ):
ch = input("Enter choice ")
file = song_list[i]
if(ch == 1):
playsong()
elif(ch == 2):
ch = 1
pause()
elif(ch == 3):
#play previous song
ch = 1
i -= 2
elif (ch == 4):
#play next song
ch = 1
elif (ch == 5):
break
i += 1
Я хочу, чтобы программа воспроизводила следующую песню из списка, когда песня заканчивается, если пользователь не нажал ни одной клавиши. Не следует снова просить пользователя нажать клавишу воспроизведения, чтобы воспроизвести следующую песню.