Как сделать так, чтобы музыка проигрывалась последовательно?
Как сделать так, чтобы музыка проигрывалась последовательно?
from tkinter import filedialog
from tkinter import *
import pygame
import os
root = Tk()
root.title('MP-3 Pleer')
root.geometry("500x300")
pygame.mixer.init()
menubar = Menu(root)
root.config(menu=menubar)
songs = []
current_song = ""
pause = False
def load_music():
global current_song #
root.directory = filedialog.askdirectory()
for song in os.listdir(root.directory):
name, ext = os.path.splitext(song)в
if ext == '.mp3':
songs.append(song)
for song in songs:
songlist.insert("end",song)
songlist.select_set(0)
current_song = songs[songlist.curselection()[0]]
def play_music():
global current_song, paused
if not pause:
pygame.mixer.music.load(os.path.join(root.directory, current_song))
pygame.mixer.music.play()
else:
pygame.mixer.music.unpause()
paused=False
def pause_music():
global pause
pygame.mixer.music.pause()
pause = True
def next_music():
global current_song, paused
try:
songlist.select_clear(0, END)
songlist.select_set(songs.index(current_song) + 1)
current_song = songs[songlist.curselection()[0]]
play_music()
except:
pass
def prev_music():
global current_song, paused
try:
songlist.select_clear(0, END)
songlist.select_set(songs.index(current_song) - 1)
current_song = songs[songlist.curselection()[0]]
play_music()
except:
pass
organise_menu = Menu(menubar, tearoff=False)
organise_menu.add_command(label='Add music', command=load_music)
menubar.add_cascade(label='Menu', menu=organise_menu)
songlist = Listbox(root, bg="black", fg="white", width=100, height=15)
songlist.pack()
play_btn_image = PhotoImage(file='play.png')
pause_btn_image = PhotoImage(file='pause.png')
next_btn_image = PhotoImage(file='next.png')
prev_btn_image = PhotoImage(file='previous.png')
#add_btn_image = PhotoImage(file='pngwing.com (2).png')
control_frame = Frame(root)
control_frame.pack()
play_btn = Button(control_frame, image=play_btn_image, borderwidth=0, command=play_music)
pause_btn = Button(control_frame, image=pause_btn_image, borderwidth=0, command=pause_music)
next_btn = Button(control_frame, image=next_btn_image, borderwidth=0, command=next_music)
prev_btn = Button(control_frame, image=prev_btn_image, borderwidth=0,command=prev_music)
#add_btn = Button(control_frame, image=add_btn_image, borderwidth=0)
play_btn.grid(row=0, column=1, padx=7, pady=10)
pause_btn.grid(row=0, column=2, padx=7, pady=10)
next_btn.grid(row=0, column=3, padx=7, pady=10)
prev_btn.grid(row=0, column=0, padx=7, pady=10)
#add_btn.grid(row=0, column=4, padx=7, pady=10)
root.mainloop()