Kasutage Pythoni võimsust ja looge PyGame ja Tkinteri moodulite abil oma muusikapleier.
Muusikamängijad on aja jooksul kiiresti arenenud. See algas grammofonide, jukeboxide, CD-mängijate ja MP3-mängijatega. Täna saate kuulata muusikat oma mobiiltelefonis või arvutis. Seda kontseptsiooni uurides arendage Pythoni abil muusikapleieri rakendus ja eemaldage see.
Tkinteri, PyGame'i ja OS-i moodul
Muusikapleieri ehitamiseks vajate Tkinterit, PyGame'i ja OS-i moodulit. Tkinter on Pythoni standardne GUI teek, mida saate kasutada töölauarakenduste loomiseks. See pakub mitmesuguseid vidinaid, nagu nupud, sildid ja tekstikastid, et saaksite rakendusi kiiresti arendada. Tkinteri installimiseks avage terminal ja käivitage:
pip install tkinter
PyGame'i abil saate arendada hämmastavaid videomänge, mis võivad töötada mis tahes platvormil. Seda on lihtne kasutada ning kaasas on graafika- ja heliteegid, mis muudavad teie arendusprotsessi kiiremaks. Kasutate PyGame'i mikser.muusika moodul, et pakkuda oma muusikapleierile erinevaid funktsioone. PyGame'i installimiseks käivitage:
pip install pygame
Lõpuks vajate OS-i moodul laulude laadimiseks oma süsteemi. OS-mooduliga on kaasas Pythoni standardteegi ja see ei vaja eraldi installimist. Selle mooduliga pääsete juurde süsteemispetsiifilistele funktsioonidele, et oma operatsioonisüsteemiga tegeleda.
Kuidas Pythoni abil muusikapleierit luua
Siit leiate Pythoni abil rakenduse Music Player lähtekoodi GitHubi hoidla.
Alustage Tkinteri, PyGame'i ja OS-i moodulite importimisega. Määratlege klass, Muusikamängija. Määratlege __selles__ konstruktor, mida programm objekti loomise ajal kutsub. Saate kasutada eksemplari ise et pääseda juurde klassis olevatele muutujatele või meetoditele.
Initsialiseerige juuraken ning määrake oma muusikapleieri pealkiri ja mõõtmed. Initsialiseerige kõik imporditud PyGame'i moodulid koos segisti mooduliga. Määra raja ja oleku olekuks StringVar tüüp. Seda kasutades saate määrata tekstiväärtuse ja selle vajaduse korral alla laadida.
alates tkinter importida *
importida pygame
importida osklassMuusikamängija:
def__selles__(ise, juur):
ise.juur = juur
self.root.title("Muusikapleier")
self.root.geometry("1000x200")
pygame.init()
pygame.mixer.init()
self.track = StringVar()
self.status = StringVar()
Määratlege a LabelFrame mis sisaldab laululugu silt ja raja olek silt. Labelframe toimib konteinerina ja kuvab sildid piirialal. Määrake põhiaken, kuhu soovite raami paigutada, tekst, mida see peaks kuvama, fondi stiilid, taustavärv, fondi värv, äärise laius ja 3D-efektid väljaspool vidinat.
Kasuta koht () raami korraldamise meetod. Määratlege kaks silti, laululugu ja raja olek. Kohandage neid ja kasutage grid() haldur, et korraldada need ridade ja veergude vormingus. Saate määrata lauluraja nii, et see oleks esimeses reas, ja lisada polsterdust, et vältida kattumist ja muuta kujundus ilusamaks.
trackframe = LabelFrame (self.root, text="Laululugu",font=("arial",15,"julge"),bg="#8F00FF",fg="valge",bd=5,reljeef=GROOVE)
trackframe.place (x=0,y=0,laius=600,kõrgus=100)
songtrack = Silt (trackframe, textvariable=self.track, width=20,font=("arial",24,"julge"),bg="#8F00FF",fg="#B0FC38").grid (rida=0,veerg=0,padx=10,pady=5)
trackstatus = Silt (trackframe, textvariable=self.status, font=("arial",24,"julge"),bg="#8F00FF",fg="#B0FC38").grid (rida=0,veerg=1,padx=10,pady=5)
Samamoodi määrake raam, mis sisaldab nelja nuppu. Kohandage ja korraldage seda rajaraami all. Määratlege neli nuppu, Mängi, Paus, Tühista paus, ja Peatus. Määrake ülemaken, kuhu soovite nupud panna, tekst, mida see peaks kuvama, ja selle funktsioonid peaks klõpsamisel käivitama laiuse, kõrguse, fondi stiili, taustavärvi ja fondi värvi oleks pidanud.
Kasuta grid() haldur, et korraldada nupud ühte ritta ja nelja erinevasse veergu.
nupuraam = LabelFrame (self.root, text="Kontrollpaneel",font=("arial",15,"julge"),bg="#8F00FF",fg="valge",bd=5,reljeef=GROOVE)
nupuraam.koht (x=0,y=100,laius=600,kõrgus=100)
playbtn = Nupp (nupuraam, tekst="MÄNGI",command=self.playsong, width=6,kõrgus=1,font=("arial",16,"julge"),fg="mereväe sinine",bg="#B0FC38").grid (rida=0,veerg=0,padx=10,pady=5)
playbtn = Nupp (nupuraam, tekst="PAUS",command=self.pauses song, width=8,kõrgus=1,font=("arial",16,"julge"),fg="mereväe sinine",bg="#B0FC38").grid (rida=0,veerg=1,padx=10,pady=5)
playbtn = Nupp (nupuraam, tekst="UNPAUSE",command=self.unpausesong, width=10,kõrgus=1,font=("arial",16,"julge"),fg="mereväe sinine",bg="#B0FC38").grid (rida=0,veerg=2,padx=10,pady=5)
playbtn = Nupp (nupuraam, tekst="STOP",käsk=self.stopplaul, laius=6,kõrgus=1,font=("arial",16,"julge"),fg="mereväe sinine",bg="#B0FC38").grid (rida=0,veerg=3,padx=10,pady=5)
Määrake LabelFrame, lauluraam. See sisaldab lugusid, mida soovite oma muusikapleieris esitada. Kohandage raami atribuute ja asetage see raja ja nupuraami paremale küljele. Lisage vertikaalne kerimisriba, et pääseda lugudele juurde isegi siis, kui teie lugude loend on pikk.
Kasuta Loendikast vidin lugude kuvamiseks. Määrake teksti valimisel kuvatav taustavärv ja režiim. Üksikrežiim võimaldab teil valida ühe loo korraga. Lisaks lähtestage fondi stiil, taustavärv, fondi värv, äärise laius ja soovitud 3D-stiil.
songsframe = LabelFrame (self.root, text="Laulude esitusloend",font=("arial",15,"julge"),bg="#8F00FF",fg="valge",bd=5,reljeef=GROOVE)
songsframe.place (x=600,y=0,laius=400,kõrgus=200)
scroll_y = Kerimisriba (lauluraam, orient=VERTIKALNE)
self.playlist = Loendikast (lauluraam, yscrollcommand=scroll_y.set, selectbackground="#B0FC38",selectmode=ÜKS, font=("arial",12,"julge"),bg="#CF9FFF",fg="mereväe sinine",bd=5,reljeef=GROOVE)
Pakkige kerimisriba akna paremasse serva ja täitke see tähega Y. See tagab, et iga kord, kui akent laiendate, laieneb kerimisriba ka Y-suunas. Konfigureerige loendiboks, et kasutada yview kerimisriba meetod vertikaalseks kerimiseks. Pakkige loendikast, et võtta ruumi nii horisontaalselt kui ka vertikaalselt.
Muutke praegune töökataloog määratud teeks. Korrake lugusid ja sisestage need ükshaaval loendikasti. Sa kasutad LÕPP esimese argumendina, kui soovite loendikasti lõppu uusi ridu lisada.
scroll_y.pack (külg=PAREM, täitmine=Y)
scroll_y.config (käsk=self.playlist.yview)
self.playlist.pack (fill = MÕLEMAD)
os.chdir("Teie_laulude_kausta_tee")
laulurajad = os.listdir()
jaoks rada sisse laululood:
self.playlist.insert (lõpp, lugu)
Määratlege funktsioon, mängulaul. Määrake lugu nii, et see kuvaks loo nime koos olekuga kui - Mängib. Kasuta laadige () ja mängi () PyGame'i mixer.music mooduli funktsioone muusika taasesitamiseks laadimiseks ja selle käivitamiseks.
defmängulaul(ise):
self.track.set (self.playlist.get (ACTIVE))
self.status.set("-mängib")
pygame.mixer.music.load (self.playlist.get (ACTIVE))
pygame.mixer.music.play()
Samamoodi määrake funktsioonid laulude esitamise peatamiseks, peatamiseks ja pausi tühistamiseks stop (), paus (), ja unpause ().
defpeatuslaul(ise):
self.status.set("-peatatud")
pygame.mixer.music.stop()defpausi laul(ise):
self.status.set("-Peatatud")
pygame.mixer.music.pause()
defkatkesta laul(ise):
self.status.set("-mängib")
pygame.mixer.music.unpause()
Initsialiseerige Tkinteri eksemplar ja kuvage juuraken, edastades selle klassile. The mainloop() funktsioon käsib Pythonil käivitada Tkinteri sündmusetsükli ja kuulata sündmusi, kuni sulgete akna.
juur = Tk()
MusicPlayer (juur)
root.mainloop()
Pange kogu kood kokku ja muusikapleier on teie käeulatuses esitamiseks valmis. Saate oma muusikapleierit veelgi kohandada objektide ja kujundite lisamine PyGame'i joonistusmoodulite abil.
Muusikapleieri rakenduse väljund Pythoni abil
Programmi käivitamisel käivitab pleier esitusloendiks valitud lood. Mis tahes laulu valimisel ja nupule vajutamisel Mängi nuppu, hakkab muusika mängima. Samamoodi peatab, katkestab ja lõpetab muusika esitamise, klõpsates vastavatel nuppudel.
Mängude ehitamine PyGame mooduliga
PyGame on võimas moodul, mille abil saate luua selliseid mänge nagu Frets on Fire, Flappy Bird, Snake, Super Potato Bruh, Sudoku ja palju muud. PyGame'il on objektorienteeritud disain, nii et saate koode uuesti kasutada ja oma mängude tegelasi hõlpsalt kohandada.
See toetab ja pakub suurepäraseid graafika, helide, sisend- ja väljundtööriistu, nii et saate keskenduda oma mängu kujundamisele, selle asemel, et investeerida oma aega iga minuti funktsiooni kodeerimisele. Teise võimalusena saate uurida Pyglet ja Kivy, mis on kiiremad, toetavad 3D-projekte, on intuitiivsemad ja koos regulaarsete värskendustega.