Utnyttja kraften i Python och bygg din egen musikspelare med PyGame & Tkinter-modulerna.

Musikspelare har utvecklats snabbt med tiden. Det började med grammofoner, jukeboxar, CD-spelare och MP3-spelare. Idag kan du lyssna på musik på din mobil eller själva datorn. Utforska just detta koncept, utveckla en musikspelarapplikation med Python och groove off.

Tkinter-, PyGame- och OS-modulen

För att bygga musikspelaren behöver du Tkinter, PyGame och OS-modulen. Tkinter är standard GUI-biblioteket för Python som du kan använda för att skapa skrivbordsapplikationer. Den erbjuder en mängd olika widgets som knappar, etiketter och textrutor så att du kan utveckla appar på nolltid. För att installera Tkinter, öppna en terminal och kör:

pip installera tkinter

Med PyGame kan du utveckla fantastiska videospel som kan köras på vilken plattform som helst. Den är enkel att använda och levereras med grafik- och ljudbibliotek för att göra din utvecklingsprocess snabbare. Du kommer att använda PyGame's mixer.musik

instagram viewer
modul för att tillhandahålla olika funktioner till din musikspelare. För att installera PyGame, kör:

pip installera pygame

Slutligen behöver du OS-modulen för att ladda låtarna till ditt system. OS-modulen kommer med Pythons standardbibliotek och behöver ingen separat installation. Med den här modulen kan du komma åt systemspecifika funktioner för att hantera ditt operativsystem.

Hur man bygger en musikspelare med Python

Du kan hitta källkoden för Music Player-applikationen med Python i denna GitHub-förråd.

Börja med att importera modulerna Tkinter, PyGame och OS. Definiera en klass, Musikspelare. Definiera __i det__ konstruktor som programmet anropar när objektet skapas. Du kan använda instans själv för att komma åt alla variabler eller metoder inom klassen.

Initiera rotfönstret och ställ in titeln och måtten på din musikspelare. Initiera alla importerade PyGame-moduler tillsammans med mixermodulen. Ställ in spår och status för att vara av StringVar typ. Med detta kan du ställa in ett textvärde och hämta det vid behov.

från tkinter importera *
importera pygame
importera os

klassMusikspelare:

def__i det__(själv, rot):
self.root = rot
self.root.title("Musikspelare")
self.root.geometry("1000x200")
pygame.init()
pygame.mixer.init()
self.track = StringVar()
self.status = StringVar()

Definiera a LabelFrame som kommer att innehålla låtspår etiketten och spårstatus märka. Labelframe fungerar som en behållare och visar etiketterna inom ett kantområde. Ställ in det överordnade fönstret du vill placera ramen i, texten den ska visa, typsnittsstilarna, bakgrundsfärgen, teckensnittsfärgen, kantbredden och 3D-effekterna utanför widgeten.

Använd plats() metod för att organisera ramen. Definiera två etiketter, låtspår och spårstatus. Anpassa dem och använd rutnät() chef för att organisera dem i rader och kolumner format. Du kan ställa in låtspåret så att det finns på första raden och lägga till lite stoppning för att undvika överlappning och göra designen vackrare.

 trackframe = LabelFrame (self.root, text="Sångspår",font=("arial",15,"djärv"),bg="#8F00FF",fg="vit",bd=5,relief=GROOVE)
trackframe.place (x=0,y=0,bredd=600,höjd=100)
songtrack = Label (trackframe, textvariable=self.track, width=20,font=("arial",24,"djärv"),bg="#8F00FF",fg="#B0FC38").rutnät (rad=0,kolumn=0,padx=10,pady=5)
trackstatus = Etikett (trackframe, textvariable=self.status, font=("arial",24,"djärv"),bg="#8F00FF",fg="#B0FC38").rutnät (rad=0,kolumn=1,padx=10,pady=5)

Definiera på samma sätt en ram som kommer att innehålla fyra knappar. Anpassa och organisera den under spårramen. Definiera fyra knappar, Spela, Paus, Avbryt paus, och Sluta. Ställ in det överordnade fönstret du vill placera knapparna i, texten det ska visa, funktionerna det ska köras när du klickar, bredd, höjd, teckensnitt, bakgrundsfärg och teckensnittsfärgen borde ha.

Använd rutnät() manager för att organisera knapparna i en enda rad och fyra olika kolumner.

 buttonframe = LabelFrame (self.root, text="Kontrollpanel",font=("arial",15,"djärv"),bg="#8F00FF",fg="vit",bd=5,relief=GROOVE)
buttonframe.place (x=0,y=100,bredd=600,höjd=100)
playbtn = Knapp (knappram, text="SPELA",command=self.playsong, width=6,höjd=1,font=("arial",16,"djärv"),fg="marinblå",bg="#B0FC38").rutnät (rad=0,kolumn=0,padx=10,pady=5)
playbtn = Knapp (knappram, text="PAUS",command=self.pausesong, width=8,höjd=1,font=("arial",16,"djärv"),fg="marinblå",bg="#B0FC38").rutnät (rad=0,kolumn=1,padx=10,pady=5)
playbtn = Knapp (knappram, text="UNPAUSE",command=self.unpausesong, width=10,höjd=1,font=("arial",16,"djärv"),fg="marinblå",bg="#B0FC38").rutnät (rad=0,kolumn=2,padx=10,pady=5)
playbtn = Knapp (knappram, text="SLUTA",command=self.stopsong, width=6,höjd=1,font=("arial",16,"djärv"),fg="marinblå",bg="#B0FC38").rutnät (rad=0,kolumn=3,padx=10,pady=5)

Definiera en LabelFrame, låtram. Detta kommer att innehålla de låtar du vill spela på din musikspelare. Anpassa egenskaperna för ramen och placera den på höger sida av spåret och knappramen. Lägg till en vertikal rullningslist för att komma åt låtarna även när din låtlista är lång.

Använd Listbox widget för att visa låtarna. Ställ in bakgrundsfärgen som ska visas när du väljer texten och läget. Singelläget låter dig välja en låt i taget. Initiera dessutom teckensnittsstilen, bakgrundsfärgen, teckensnittsfärgen, kantbredden och den 3D-stil du vill ha runt den.

 songsframe = LabelFrame (self.root, text="Sångspellista",font=("arial",15,"djärv"),bg="#8F00FF",fg="vit",bd=5,relief=GROOVE)
songsframe.place (x=600,y=0,bredd=400,höjd=200)
scroll_y = Rullningslist (låtram, orient=VERTICAL)
self.playlist = Listbox (songsframe, yscrollcommand=scroll_y.set, selectbackground="#B0FC38",selectmode=SINGLE, font=("arial",12,"djärv"),bg="#CF9FFF",fg="marinblå",bd=5,relief=GROOVE)

Packa rullningslisten till höger sida av fönstret och fyll den som Y. Detta säkerställer att rullningslisten expanderar i Y-riktningen när du expanderar fönstret. Konfigurera listrutan för att använda yview metod för rullningslisten för att rulla vertikalt. Packa listrutan för att ta utrymmet både horisontellt och vertikalt.

Ändra den aktuella arbetskatalogen till den angivna sökvägen. Iterera över låtarna och infoga dem i listrutan en efter en. Du använder SLUTET som det första argumentet eftersom du vill lägga till nya rader i slutet av listrutan.

 scroll_y.pack (sida=HÖGER, fyll=Y)
scroll_y.config (command=self.playlist.yview)
self.playlist.pack (fill=BOTH)
os.chdir("Sökväg_till_dina_låtar_mapp")
songtracks = os.listdir()
för Spår i låtar:
self.playlist.insert (SLUT, spår)

Definiera en funktion, spela sång. Ställ in spåret för att visa namnet på låten tillsammans med status som - Spelar. Använd ladda() och spela() funktioner i PyGames mixer.music-modul för att ladda musik för uppspelning och starta den.

defspela sång(själv):
self.track.set (self.playlist.get (ACTIVE))
self.status.set("-spelar")
pygame.mixer.music.load (self.playlist.get (ACTIVE))
pygame.mixer.music.play()

Definiera på samma sätt funktioner för att stoppa, pausa och återuppta låtarna med hjälp av sluta(), paus(), och återuppta ().

defstoppsång(själv):
self.status.set("-Stoppade")
pygame.mixer.music.stop()

defpauslåt(själv):
self.status.set("-Pausad")
pygame.mixer.music.pause()

defuppehållssång(själv):
self.status.set("-spelar")
pygame.mixer.music.unpause()

Initiera Tkinter-instansen och visa rotfönstret genom att skicka det till klassen. De mainloop() funktionen säger åt Python att köra Tkinter-händelsslingan och lyssna efter händelser tills du stänger fönstret.

root = Tk()
MusicPlayer (root)
root.mainloop()

Sätt ihop all kod så har du din musikspelare redo att spelas till hands. Du kan anpassa din musikspelare ytterligare genom att lägga till objekt och former med PyGames ritmoduler.

Utdata från Music Player-applikationen med Python

När programmet körs startar musikspelaren de låtar du valt som spellista. På att välja någon av låtarna och slå på Spela knappen börjar musiken spelas. På samma sätt pausar musiken, återupptas och slutar spelas upp genom att klicka på lämpliga knappar.

Bygga spel med PyGame-modulen

PyGame är en kraftfull modul som du kan använda för att bygga spel som Frets on Fire, Flappy Bird, Snake, Super Potato Bruh, Sudoku och mer. PyGame har en objektorienterad design, så att du enkelt kan återanvända koder och anpassa karaktärerna i dina spel.

Det stöder och ger fantastisk grafik, ljud, inmatnings- och utdataverktyg, så att du kan fokusera på att designa ditt spel istället för att investera din tid i att koda varje minuts funktion. Alternativt kan du utforska Pyglet och Kivy som är snabbare, stöder 3D-projekt, är mer intuitiva och kommer med regelbundna uppdateringar.