first commit
This commit is contained in:
commit
18e3c0bf6d
11 changed files with 110 additions and 0 deletions
BIN
-demo songs-/Jumper.mp3
Normal file
BIN
-demo songs-/Jumper.mp3
Normal file
Binary file not shown.
BIN
-demo songs-/Let go - Slowed.mp3
Normal file
BIN
-demo songs-/Let go - Slowed.mp3
Normal file
Binary file not shown.
BIN
-demo songs-/New Magic Wand.mp3
Normal file
BIN
-demo songs-/New Magic Wand.mp3
Normal file
Binary file not shown.
BIN
-demo songs-/Pedro Pedro Pedro.mp3
Normal file
BIN
-demo songs-/Pedro Pedro Pedro.mp3
Normal file
Binary file not shown.
BIN
README.md
Normal file
BIN
README.md
Normal file
Binary file not shown.
BIN
icon.png
Normal file
BIN
icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.8 KiB |
110
main.py
Normal file
110
main.py
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
from tkinter import *
|
||||
from tkinter import filedialog
|
||||
import pygame
|
||||
import os
|
||||
|
||||
root = Tk()
|
||||
root.title("RASPMP3")
|
||||
root.geometry("600x400")
|
||||
#programIcon = pygame.image.load('icon.png')
|
||||
#pygame.display.set_icon(programIcon)
|
||||
|
||||
|
||||
pygame.mixer.init()
|
||||
|
||||
menubar = Menu(root)
|
||||
root.config(menu=menubar)
|
||||
|
||||
songs = []
|
||||
current_song = ""
|
||||
paused = 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.selection_set(0)
|
||||
current_song = songs[songList.curselection()[0]]
|
||||
|
||||
def play_music():
|
||||
global current_song, paused
|
||||
|
||||
if not paused:
|
||||
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 paused
|
||||
pygame.mixer.music.pause()
|
||||
paused = True
|
||||
|
||||
def next_music():
|
||||
global current_song, paused
|
||||
try:
|
||||
songList.selection_clear(0, END)
|
||||
next_index = songs.index(current_song) + 1
|
||||
if next_index < len(songs):
|
||||
songList.selection_set(next_index)
|
||||
current_song = songs[songList.curselection()[0]]
|
||||
play_music()
|
||||
else:
|
||||
# Handle the case when the current song is the last in the list
|
||||
songList.selection_set(0)
|
||||
current_song = songs[0]
|
||||
play_music()
|
||||
except IndexError:
|
||||
pass
|
||||
|
||||
def previous_music():
|
||||
global current_song, paused
|
||||
try:
|
||||
songList.selection_clear(0, END)
|
||||
prev_index = songs.index(current_song) - 1
|
||||
if prev_index >= 0:
|
||||
songList.selection_set(prev_index)
|
||||
current_song = songs[songList.curselection()[0]]
|
||||
play_music()
|
||||
else:
|
||||
# Handle the case when the current song is the first in the list
|
||||
songList.selection_set(len(songs) - 1)
|
||||
current_song = songs[-1]
|
||||
play_music()
|
||||
except IndexError:
|
||||
pass
|
||||
|
||||
organize_menu = Menu(menubar, tearoff=False)
|
||||
organize_menu.add_command(label="Open Folder", command=load_music)
|
||||
menubar.add_cascade(label="Songs", menu=organize_menu)
|
||||
|
||||
songList = Listbox(root, bg="black", fg="white", width=100, height=15)
|
||||
songList.pack()
|
||||
|
||||
control_frame = Frame(root)
|
||||
control_frame.pack()
|
||||
play_btn_img = PhotoImage(file="play.png")
|
||||
pause_btn_img = PhotoImage(file="pause.png")
|
||||
next_btn_img = PhotoImage(file="next.png")
|
||||
previous_btn_img = PhotoImage(file="previous.png")
|
||||
|
||||
play_btn = Button(control_frame, image=play_btn_img, borderwidth=0, command=play_music)
|
||||
pause_btn = Button(control_frame, image=pause_btn_img, borderwidth=0, command=pause_music)
|
||||
next_btn = Button(control_frame, image=next_btn_img, borderwidth=0, command=next_music)
|
||||
previous_btn = Button(control_frame, image=previous_btn_img, borderwidth=0, command=previous_music)
|
||||
|
||||
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)
|
||||
previous_btn.grid(row=0, column=0, padx=7, pady=10)
|
||||
|
||||
root.mainloop()
|
||||
BIN
next.png
Normal file
BIN
next.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.9 KiB |
BIN
pause.png
Normal file
BIN
pause.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.8 KiB |
BIN
play.png
Normal file
BIN
play.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.1 KiB |
BIN
previous.png
Normal file
BIN
previous.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.1 KiB |
Loading…
Reference in a new issue