Python İle Müzik Çalar

  • Konuyu Başlatan Konuyu Başlatan Norway
  • Başlangıç tarihi Başlangıç tarihi

Norway

Efsane Üye
Katılım
7 Haz 2024
Mesajlar
3,931
Beğeniler
1,375
İletişim
Merhabalar Ben Rhanta Sizlere ChatGpt'den Yardım Alarak Yaptığım Müzik Çaları Paylaşıcağım
Henüz Pythona Yeni Başladım O yüzden ChatGPT'den yardım Alarak Yaptığım İlk Projem
Hatalarımı Görmezden Gelirseniz Sevinirim :D

Hiç Uzatmadan Kodları Vereyim Şimdiden Söyliyim Uygulamanın Arka Planı Kötü Oldu Farkındayım
Siyah Yaptım Bilerek Zaten Siz Biraz Oynayarak Halledersiniz

Not : Uygulamanın Çalışması İçin
Pygame Kütüphanesini Yüklemeniz Gerekmektedir
Kütüphane'nin İndirme Kodu :
pip install pygame tk

Kendi Bilgisayarınızda Olan mp3 Dosyalaı Müzikleri Çalabiliyorsunuz Yakında Youtube Apisi İle Yapılanı Kodlayıp Paylaşıcam.

Python:
import tkinter as tk
from tkinter import filedialog
import pygame
import os

class MusicPlayerApp:
    def __init__(self, root):
        self.root = root
        self.root.title("Müzik Çalar")
        self.root.geometry("600x500")

        pygame.mixer.init()
        self.playlist = []
        self.current_song = None
        self.current_index = -1
        self.is_paused = False
        self.volume = 0.5
        self.loop_mode = False

        self.root.configure(bg="black")

        self.song_label = tk.Label(self.root, text="Şarkı Seçilmedi", relief="groove", bg="white", fg="black")
        self.song_label.pack(pady=10)

        self.playlist_box = tk.Listbox(self.root, selectmode=tk.SINGLE, bg="white", fg="black", width=60, height=15)
        self.playlist_box.pack(pady=10)

        control_frame = tk.Frame(self.root, bg="black")
        control_frame.pack(pady=20)

        play_button = tk.Button(control_frame, text="▶ Oynat", command=self.play_song, bg="white", fg="black")
        play_button.grid(row=0, column=0, padx=10)

        pause_button = tk.Button(control_frame, text="⏸ Duraklat", command=self.pause_song, bg="white", fg="black")
        pause_button.grid(row=0, column=1, padx=10)

        add_button = tk.Button(control_frame, text="Şarkı Ekle", command=self.add_song, bg="white", fg="black")
        add_button.grid(row=0, column=2, padx=10)

        delete_button = tk.Button(control_frame, text="Şarkı Sil", command=self.delete_song, bg="white", fg="black")
        delete_button.grid(row=0, column=3, padx=10)

        loop_button = tk.Button(control_frame, text="🔁 Döngü", command=self.toggle_loop, bg="white", fg="black")
        loop_button.grid(row=0, column=4, padx=10)

        volume_frame = tk.Frame(self.root, bg="black")
        volume_frame.pack(pady=10)
        volume_label = tk.Label(volume_frame, text="Ses: ", bg="black", fg="white")
        volume_label.pack(side=tk.LEFT)
        self.volume_scale = tk.Scale(volume_frame, from_=0, to=1, resolution=0.1, orient=tk.HORIZONTAL, bg="white", fg="black", command=self.set_volume)
        self.volume_scale.set(self.volume)
        self.volume_scale.pack(side=tk.LEFT)

    def add_song(self):
        file_path = filedialog.askopenfilename(filetypes=[("MP3 Files", "*.mp3")])
        if file_path:
            song_name = os.path.basename(file_path)
            self.playlist.append(file_path)
            self.playlist_box.insert(tk.END, song_name)

    def delete_song(self):
        selected_index = self.playlist_box.curselection()
        if selected_index:
            self.playlist_box.delete(selected_index)
            del self.playlist[selected_index[0]]

    def play_song(self):
        if self.is_paused:
            pygame.mixer.music.unpause()
            self.is_paused = False
        else:
            try:
                selected_index = self.playlist_box.curselection()
                if selected_index:
                    self.current_index = selected_index[0]
                    self.current_song = self.playlist[self.current_index]
                    pygame.mixer.music.load(self.current_song)
                    pygame.mixer.music.play()
                    self.song_label.config(text=os.path.basename(self.current_song))
                    self.check_song_end()
            except IndexError:
                pass

    def pause_song(self):
        pygame.mixer.music.pause()
        self.is_paused = True

    def set_volume(self, volume_level):
        self.volume = float(volume_level)
        pygame.mixer.music.set_volume(self.volume)

    def toggle_loop(self):
        self.loop_mode = not self.loop_mode
        if self.loop_mode:
            print("Döngü modu açık.")
        else:
            print("Döngü modu kapalı.")

    def check_song_end(self):
        if not pygame.mixer.music.get_busy():
            if self.loop_mode:
                pygame.mixer.music.play()
            else:
                self.play_next_song()

        self.root.after(1000, self.check_song_end)

    def play_next_song(self):
        if self.current_index + 1 < len(self.playlist):
            self.current_index += 1
            self.current_song = self.playlist[self.current_index]
            pygame.mixer.music.load(self.current_song)
            pygame.mixer.music.play()
            self.song_label.config(text=os.path.basename(self.current_song))
            self.check_song_end()
        else:
            self.song_label.config(text="Tüm şarkılar çalındı.")

if __name__ == "__main__":
    root = tk.Tk()
    app = MusicPlayerApp(root)
    root.mainloop()

+
 
Son düzenleme:
Bu kullanıcıyla herhangi bir iş veya ticaret yapmak istiyorsanız, forumdan uzaklaştırıldığını sakın unutmayın.
Hocam herşeyi çaktım mevzuları anladım ama konuyu açarmısınız Müzik çalardan kastınız youtube gibi bir yerden api çekip koyduğumuz playlistimi çalıyor?
 
Hocam herşeyi çaktım mevzuları anladım ama konuyu açarmısınız Müzik çalardan kastınız youtube gibi bir yerden api çekip koyduğumuz playlistimi çalıyor?
yok hayır kendi pc sinize eklediüğinizi çalışıyor fakat yakında youtube olan verisonunuda paylaşıcağım
 
Bu kullanıcıyla herhangi bir iş veya ticaret yapmak istiyorsanız, forumdan uzaklaştırıldığını sakın unutmayın.
yok hayır kendi pc sinize eklediüğinizi çalışıyor fakat yakında youtube olan verisonunuda paylaşıcağım
anladım kendinizi geliştirmeye çalışmanız güzel bir şey umarım phyton konusunda iyi yerlere gelirsiniz youtube üzerinden ders almanızı tavsiye ederim.
 
güzelmiş spotify gibi çok boyutlu bi uygulamayı indirmeye gerek kalmadan kendi pcmizden istediğimizi seçebiliyoruz böyle devam et
 
Merhabalar Ben Rhanta Sizlere ChatGpt'den Yardım Alarak Yaptığım Müzik Çaları Paylaşıcağım
Henüz Pythona Yeni Başladım O yüzden ChatGPT'den yardım Alarak Yaptığım İlk Projem
Hatalarımı Görmezden Gelirseniz Sevinirim :D

Hiç Uzatmadan Kodları Vereyim Şimdiden Söyliyim Uygulamanın Arka Planı Kötü Oldu Farkındayım
Siyah Yaptım Bilerek Zaten Siz Biraz Oynayarak Halledersiniz

Not : Uygulamanın Çalışması İçin
Pygame Kütüphanesini Yüklemeniz Gerekmektedir
Kütüphane'nin İndirme Kodu :
pip install pygame tk

Kendi Bilgisayarınızda Olan mp3 Dosyalaı Müzikleri Çalabiliyorsunuz Yakında Youtube Apisi İle Yapılanı Kodlayıp Paylaşıcam.

Python:
import tkinter as tk
from tkinter import filedialog
import pygame
import os

class MusicPlayerApp:
    def __init__(self, root):
        self.root = root
        self.root.title("Müzik Çalar")
        self.root.geometry("600x500")

        pygame.mixer.init()
        self.playlist = []
        self.current_song = None
        self.current_index = -1
        self.is_paused = False
        self.volume = 0.5
        self.loop_mode = False

        self.root.configure(bg="black")

        self.song_label = tk.Label(self.root, text="Şarkı Seçilmedi", relief="groove", bg="white", fg="black")
        self.song_label.pack(pady=10)

        self.playlist_box = tk.Listbox(self.root, selectmode=tk.SINGLE, bg="white", fg="black", width=60, height=15)
        self.playlist_box.pack(pady=10)

        control_frame = tk.Frame(self.root, bg="black")
        control_frame.pack(pady=20)

        play_button = tk.Button(control_frame, text="▶ Oynat", command=self.play_song, bg="white", fg="black")
        play_button.grid(row=0, column=0, padx=10)

        pause_button = tk.Button(control_frame, text="⏸ Duraklat", command=self.pause_song, bg="white", fg="black")
        pause_button.grid(row=0, column=1, padx=10)

        add_button = tk.Button(control_frame, text="Şarkı Ekle", command=self.add_song, bg="white", fg="black")
        add_button.grid(row=0, column=2, padx=10)

        delete_button = tk.Button(control_frame, text="Şarkı Sil", command=self.delete_song, bg="white", fg="black")
        delete_button.grid(row=0, column=3, padx=10)

        loop_button = tk.Button(control_frame, text="🔁 Döngü", command=self.toggle_loop, bg="white", fg="black")
        loop_button.grid(row=0, column=4, padx=10)

        volume_frame = tk.Frame(self.root, bg="black")
        volume_frame.pack(pady=10)
        volume_label = tk.Label(volume_frame, text="Ses: ", bg="black", fg="white")
        volume_label.pack(side=tk.LEFT)
        self.volume_scale = tk.Scale(volume_frame, from_=0, to=1, resolution=0.1, orient=tk.HORIZONTAL, bg="white", fg="black", command=self.set_volume)
        self.volume_scale.set(self.volume)
        self.volume_scale.pack(side=tk.LEFT)

    def add_song(self):
        file_path = filedialog.askopenfilename(filetypes=[("MP3 Files", "*.mp3")])
        if file_path:
            song_name = os.path.basename(file_path)
            self.playlist.append(file_path)
            self.playlist_box.insert(tk.END, song_name)

    def delete_song(self):
        selected_index = self.playlist_box.curselection()
        if selected_index:
            self.playlist_box.delete(selected_index)
            del self.playlist[selected_index[0]]

    def play_song(self):
        if self.is_paused:
            pygame.mixer.music.unpause()
            self.is_paused = False
        else:
            try:
                selected_index = self.playlist_box.curselection()
                if selected_index:
                    self.current_index = selected_index[0]
                    self.current_song = self.playlist[self.current_index]
                    pygame.mixer.music.load(self.current_song)
                    pygame.mixer.music.play()
                    self.song_label.config(text=os.path.basename(self.current_song))
                    self.check_song_end()
            except IndexError:
                pass

    def pause_song(self):
        pygame.mixer.music.pause()
        self.is_paused = True

    def set_volume(self, volume_level):
        self.volume = float(volume_level)
        pygame.mixer.music.set_volume(self.volume)

    def toggle_loop(self):
        self.loop_mode = not self.loop_mode
        if self.loop_mode:
            print("Döngü modu açık.")
        else:
            print("Döngü modu kapalı.")

    def check_song_end(self):
        if not pygame.mixer.music.get_busy():
            if self.loop_mode:
                pygame.mixer.music.play()
            else:
                self.play_next_song()

        self.root.after(1000, self.check_song_end)

    def play_next_song(self):
        if self.current_index + 1 < len(self.playlist):
            self.current_index += 1
            self.current_song = self.playlist[self.current_index]
            pygame.mixer.music.load(self.current_song)
            pygame.mixer.music.play()
            self.song_label.config(text=os.path.basename(self.current_song))
            self.check_song_end()
        else:
            self.song_label.config(text="Tüm şarkılar çalındı.")

if __name__ == "__main__":
    root = tk.Tk()
    app = MusicPlayerApp(root)
    root.mainloop()

+
Ctk ile yapsan daha iyi olurdu
 

Şuanda konuyu görüntüleyen kullanıcılar

Geri
Üst Alt