Utnytt kraften til Python og bygg din egen musikkspiller ved å bruke PyGame & Tkinter-modulene.

Musikkspillere har utviklet seg raskt med tiden. Det begynte med grammofoner, jukebokser, CD-spillere og MP3-spillere. I dag kan du lytte til musikk på mobilen eller selve datamaskinen. Utforsk selve dette konseptet, utvikler en musikkspillerapplikasjon ved å bruke Python og groove off.

Tkinter-, PyGame- og OS-modulen

For å bygge musikkspilleren trenger du Tkinter, PyGame og OS-modulen. Tkinter er standard GUI-biblioteket for Python du kan bruke til å lage skrivebordsapplikasjoner. Den tilbyr en rekke widgets som knapper, etiketter og tekstbokser, slik at du kan utvikle apper på kort tid. For å installere Tkinter, åpne en terminal og kjør:

pip installer tkinter

Ved å bruke PyGame kan du utvikle fantastiske videospill som kan kjøres på hvilken som helst plattform. Den er enkel å bruke og leveres med grafikk- og lydbibliotek for å gjøre utviklingsprosessen raskere. Du vil bruke PyGame's mixer.musikk modul for å gi ulike funksjoner til musikkspilleren din. For å installere PyGame, kjør:

pip installer pygame

Til slutt trenger du OS-modulen for å laste sangene inn i systemet. OS-modulen kommer med standardbiblioteket til Python og trenger ikke en separat installasjon. Med denne modulen kan du få tilgang til systemspesifikke funksjoner for å håndtere operativsystemet ditt.

Hvordan bygge en musikkspiller ved hjelp av Python

Du kan finne kildekoden til Music Player-applikasjonen ved å bruke Python i denne GitHub-depot.

Begynn med å importere Tkinter-, PyGame- og OS-modulene. Definer en klasse, Musikkspiller. Definer __i det__ konstruktør som programmet kaller på tidspunktet for objektoppretting. Du kan bruke forekomst selv- for å få tilgang til variabler eller metoder i klassen.

Initialiser rotvinduet, og angi tittelen og dimensjonene til musikkspilleren. Initialiser alle de importerte PyGame-modulene sammen med miksermodulen. Angi spor og status for å være av StringVar type. Ved å bruke denne kan du angi en tekstverdi og hente den når det er nødvendig.

fra tkinter import *
import pygame
import os

klasseMusikkspiller:

def__i det__(selv, rot):
self.root = rot
self.root.title("Musikkspiller")
self.root.geometry("1000x200")
pygame.init()
pygame.mixer.init()
self.track = StringVar()
self.status = StringVar()

Definer a LabelFrame som vil inneholde sangspor etiketten og sporstatus merkelapp. Labelframe fungerer som en beholder og viser etikettene innenfor et kantområde. Angi det overordnede vinduet du vil plassere rammen i, teksten den skal vise, skriftstilene, bakgrunnsfargen, skriftfargen, kantbredden og 3D-effektene utenfor widgeten.

Bruke plass() metode for å organisere rammen. Definer to etiketter, sangspor og sporstatus. Tilpass dem og bruk Nett() leder for å organisere dem i rader og kolonner. Du kan stille inn sangsporet til å være tilstede i første rad og legge til litt polstring for å unngå overlapping og gjøre designet vakrere.

 trackframe = LabelFrame (self.root, text="Sangspor",font=("arial",15,"dristig"),bg="#8F00FF",fg="hvit",bd=5,relief=GROOVE)
trackframe.place (x=0,y=0,bredde=600,høyde=100)
sangspor = Label (trackframe, textvariable=self.track, width=20,font=("arial",24,"dristig"),bg="#8F00FF",fg="#B0FC38").rutenett (rad=0,kolonne=0,padx=10,pady=5)
trackstatus = Etikett (trackframe, textvariable=self.status, font=("arial",24,"dristig"),bg="#8F00FF",fg="#B0FC38").rutenett (rad=0,kolonne=1,padx=10,pady=5)

På samme måte definerer du en ramme som vil inneholde fire knapper. Tilpass og organiser den under sporrammen. Definer fire knapper, Spille, Pause, Gjenoppta pause, og Stoppe. Still inn det overordnede vinduet du vil sette knappene i, teksten det skal vise, funksjonene det skal kjøres når du klikker, bredden, høyden, skriftstilen, bakgrunnsfargen og skriftfargen den burde.

Bruke Nett() leder for å organisere knappene i en enkelt rad og fire forskjellige kolonner.

 buttonframe = LabelFrame (self.root, text="Kontrollpanel",font=("arial",15,"dristig"),bg="#8F00FF",fg="hvit",bd=5,relief=GROOVE)
buttonframe.place (x=0,y=100,bredde=600,høyde=100)
playbtn = Knapp (knappramme, tekst="SPILLE",command=self.playsong, width=6,høyde=1,font=("arial",16,"dristig"),fg="marineblå",bg="#B0FC38").rutenett (rad=0,kolonne=0,padx=10,pady=5)
playbtn = Knapp (knappramme, tekst="PAUSE",command=self.pausesong, width=8,høyde=1,font=("arial",16,"dristig"),fg="marineblå",bg="#B0FC38").rutenett (rad=0,kolonne=1,padx=10,pady=5)
playbtn = Knapp (knappramme, tekst="UNPAUSE",command=self.unpausesong, width=10,høyde=1,font=("arial",16,"dristig"),fg="marineblå",bg="#B0FC38").rutenett (rad=0,kolonne=2,padx=10,pady=5)
playbtn = Knapp (knappramme, tekst="STOPPE",command=self.stopsong, width=6,høyde=1,font=("arial",16,"dristig"),fg="marineblå",bg="#B0FC38").rutenett (rad=0,kolonne=3,padx=10,pady=5)

Definer en LabelFrame, sangramme. Dette vil inneholde sangene du vil spille på musikkspilleren. Tilpass egenskapene til rammen og plasser den på høyre side av sporet og knapperammen. Legg til et vertikalt rullefelt for å få tilgang til sangene selv når sanglisten din er lang.

Bruke Listeboks widget for å vise sangene. Still inn bakgrunnsfargen som skal vises når du velger teksten, og modusen. Enkeltmodus lar deg velge én sang om gangen. I tillegg initialiser skriftstilen, bakgrunnsfargen, skriftfargen, kantbredden og 3D-stilen du vil ha rundt den.

 songsframe = LabelFrame (self.root, text="Sangspilleliste",font=("arial",15,"dristig"),bg="#8F00FF",fg="hvit",bd=5,relief=GROOVE)
songsframe.place (x=600,y=0,bredde=400,høyde=200)
scroll_y = Rullefelt (songramme, orient=VERTICAL)
self.playlist = Listeboks (songframe, yscrollcommand=scroll_y.set, selectbackground="#B0FC38",selectmode=SINGLE, font=("arial",12,"dristig"),bg="#CF9FFF",fg="marineblå",bd=5,relief=GROOVE)

Pakk rullefeltet til høyre side av vinduet og fyll det som Y. Dette sikrer at når du utvider vinduet, utvides rullefeltet også i Y-retningen. Konfigurer listeboksen for å bruke yview metoden til rullefeltet for å rulle vertikalt. Pakk listeboksen for å ta plassen både horisontalt og vertikalt.

Endre gjeldende arbeidskatalog til den angitte banen. Iterer over sangene og sett dem inn i listeboksen én etter én. Du bruker SLUTT som det første argumentet ettersom du vil legge til nye linjer på slutten av listeboksen.

 scroll_y.pack (side=HØYRE, fyll=Y)
scroll_y.config (command=self.playlist.yview)
self.playlist.pack (fill=BOTH)
os.chdir("Path_to_your_songs_ folder")
sangspor = os.listdir()
til spor i sangspor:
self.playlist.insert (END, spor)

Definer en funksjon, spillesang. Still inn sporet til å vise navnet på sangen sammen med statusen som -Leker. Bruke laste() og spille() funksjoner til PyGames mixer.music-modul for å laste musikk for avspilling og starte den.

defspillesang(selv):
self.track.set (self.playlist.get (ACTIVE))
self.status.set("-Spiller")
pygame.mixer.music.load (self.playlist.get (AKTIV))
pygame.mixer.music.play()

På samme måte definerer du funksjoner for å stoppe, pause og gjenoppta sangene ved hjelp av Stoppe(), pause(), og gjenoppta pause().

defstoppsang(selv):
self.status.set("-Stoppet")
pygame.mixer.music.stop()

defpausesang(selv):
self.status.set("-Pause")
pygame.mixer.music.pause()

defpausesang(selv):
self.status.set("-Spiller")
pygame.mixer.music.unpause()

Initialiser Tkinter-forekomsten og vis rotvinduet ved å sende det til klassen. De mainloop() funksjonen forteller Python å kjøre Tkinter-hendelsesløkken og lytte etter hendelser til du lukker vinduet.

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

Sett all koden sammen, og du har musikkspilleren klar til å spille på fingertuppene. Du kan tilpasse musikkspilleren enda mer ved å legge til objekter og former ved hjelp av PyGames tegnemoduler.

Utdata fra musikkspillerapplikasjon ved bruk av Python

Når du kjører programmet, starter musikkspilleren sangene du valgte som spilleliste. Ved å velge noen av sangene og trykke på Spille knappen, begynner musikken å spille. På samme måte stopper musikken, gjenopptas og slutter å spille med et klikk på de aktuelle knappene.

Bygg spill med PyGame-modulen

PyGame er en kraftig modul som du kan bruke til å bygge spill som Frets on Fire, Flappy Bird, Snake, Super Potato Bruh, Sudoku og mer. PyGame har et objektorientert design, slik at du enkelt kan gjenbruke koder og tilpasse karakterene til spillene dine.

Den støtter og gir flott grafikk, lyder, input- og utdataverktøy, slik at du kan fokusere på å designe spillet ditt i stedet for å investere tiden din i koding av funksjoner for hvert eneste minutt. Alternativt kan du utforske Pyglet og Kivy som er raskere, støtter 3D-prosjekter, er mer intuitive og kommer med regelmessige oppdateringer.