Commit e63c1237 by jear
parents 2661f5e5 6a9a23e1
Showing with 110 additions and 0 deletions
import pygame, sys
#kjo fillon procesin e pygame .init
pygame.init()
screen = pygame.display.set_mode((500,600))
clock = pygame.time.Clock()
test_surface = pygame.Surface ((100,200))
test_surface.fill((0,0,225))
while True:
#ky loop do tregoj tana elementet brenda boxit
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
screen.fill((175,215,70))
screen.blit(test_surface,(200,250))
pygame.display.update()
#krijojme framerate, pra 60 times / second
clock.tick(60)
\ No newline at end of file
import tkinter as tk
from tkinter import filedialog, messagebox
from PIL import Image, ImageTk
from mutagen.mp3 import MP3
from mutagen.id3 import ID3
import pygame
import os
# Initialize Pygame mixer
pygame.mixer.init()
class MediaPlayer:
def __init__(self, root):
self.root = root
self.root.title("Python Media Player")
self.root.geometry("600x400")
self.playlist = []
self.current_index = 0
# UI Elements
self.listbox = tk.Listbox(root, bg="black", fg="white", width=60)
self.listbox.pack(pady=20)
control_frame = tk.Frame(root)
control_frame.pack()
tk.Button(control_frame, text="Add Songs", command=self.add_songs).grid(row=0, column=0)
tk.Button(control_frame, text="Play", command=self.play_song).grid(row=0, column=1)
tk.Button(control_frame, text="Pause", command=self.pause_song).grid(row=0, column=2)
tk.Button(control_frame, text="Stop", command=self.stop_song).grid(row=0, column=3)
self.meta_label = tk.Label(root, text="Metadata will appear here", wraplength=500)
self.meta_label.pack(pady=10)
self.cover_label = tk.Label(root)
self.cover_label.pack()
def add_songs(self):
files = filedialog.askopenfilenames(filetypes=[("MP3 Files", "*.mp3")])
for f in files:
self.playlist.append(f)
self.listbox.insert(tk.END, os.path.basename(f))
def play_song(self):
try:
song_path = self.playlist[self.listbox.curselection()[0]]
except IndexError:
return
pygame.mixer.music.load(song_path)
pygame.mixer.music.play()
self.display_metadata(song_path)
def pause_song(self):
pygame.mixer.music.pause()
def stop_song(self):
pygame.mixer.music.stop()
def display_metadata(self, song_path):
audio = MP3(song_path, ID3=ID3)
title = audio.get("TIT2", "Unknown Title")
artist = audio.get("TPE1", "Unknown Artist")
meta_text = f"Title: {title}\nArtist: {artist}"
self.meta_label.config(text=meta_text)
try:
tags = ID3(song_path)
for tag in tags.values():
if tag.FrameID == 'APIC': # Album art
img = Image.open(tag.data)
img = img.resize((100, 100))
photo = ImageTk.PhotoImage(img)
self.cover_label.config(image=photo)
self.cover_label.image = photo
return
except:
self.cover_label.config(image='', text='No Cover Found')
if __name__ == '__main__':
root = tk.Tk()
app = MediaPlayer(root)
root.mainloop()
File mode changed
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment