נצל את הכוח של Python ובנה נגן מוזיקה משלך באמצעות המודולים PyGame ו-Tkinter.
נגני מוזיקה התפתחו במהירות עם הזמן. זה התחיל עם גרמופונים, קופסאות נגינה, נגני CD ונגני MP3. היום, אתה יכול להאזין למוזיקה בנייד או במחשב עצמו. בוחן את הרעיון הזה בדיוק, פתח יישום נגן מוזיקה באמצעות Python ו-groove off.
מודול Tkinter, PyGame ומערכת ההפעלה
כדי לבנות את נגן המוזיקה, אתה צריך את Tkinter, PyGame ומודול מערכת ההפעלה. Tkinter היא ספריית ה-GUI הסטנדרטית עבור Python שבה אתה יכול להשתמש כדי ליצור יישומי שולחן עבודה. הוא מציע מגוון של ווידג'טים כמו לחצנים, תוויות ותיבות טקסט כך שתוכל לפתח אפליקציות תוך זמן קצר. כדי להתקין את Tkinter, פתח מסוף והפעל:
pip להתקין tkinter
באמצעות PyGame תוכלו לפתח משחקי וידאו מדהימים שיכולים לרוץ בכל פלטפורמה. זה פשוט לשימוש ומגיע עם ספריות גרפיות וסאונד כדי להפוך את תהליך הפיתוח שלך למהיר יותר. אתה תשתמש ב- PyGame mixer.music מודול לספק פונקציות שונות לנגן המוזיקה שלך. כדי להתקין PyGame, בצע:
pip להתקין pygame
לבסוף, אתה צריך מודול מערכת ההפעלה כדי לטעון את השירים למערכת שלך. מודול מערכת ההפעלה מגיע עם הספרייה הסטנדרטית של Python ואינו זקוק להתקנה נפרדת. עם מודול זה, אתה יכול לגשת לפונקציות ספציפיות למערכת כדי להתמודד עם מערכת ההפעלה שלך.
כיצד לבנות נגן מוזיקה באמצעות Python
אתה יכול למצוא את קוד המקור של אפליקציית נגן המוזיקה באמצעות Python כאן מאגר GitHub.
התחל בייבוא המודולים Tkinter, PyGame ומערכת ההפעלה. הגדירו מחלקה, נגן מוזיקה. תגדיר את __init__ בנאי שהתוכנית קוראת לו בזמן יצירת האובייקט. אתה יכול להשתמש במופע עצמי כדי לגשת לכל משתנים או מתודות בתוך המחלקה.
אתחל את חלון הבסיס והגדר את הכותרת והממדים של נגן המוזיקה שלך. אתחול כל מודולי PyGame המיובאים יחד עם מודול המיקסר. הגדר את המסלול והסטטוס להיות של StringVar סוּג. באמצעות זה, אתה יכול להגדיר ערך טקסט ולאחזר אותו בעת הצורך.
מ tkinter יְבוּא *
יְבוּא pygame
יְבוּא OSמעמדנגן מוזיקה:
def__init__(עצמי, שורש):
self.root = שורש
self.root.title("נגן מוזיקה")
self.root.geometry("1000x200")
pygame.init()
pygame.mixer.init()
self.track = StringVar()
self.status = StringVar()
תגדיר א LabelFrame שיכיל את רצועת השיר תווית ואת סטטוס מעקב תווית. Labelframe פועל כמיכל ומציג את התוויות בתוך אזור גבול. הגדר את חלון האב שבו ברצונך למקם את המסגרת, את הטקסט שהיא אמורה להציג, את סגנונות הגופן, צבע הרקע, צבע הגופן, רוחב הגבול ואפקטי התלת-ממד מחוץ לווידג'ט.
להשתמש ב מקום() שיטה לארגן את המסגרת. הגדר שתי תוויות, פס שירים ו סטטוס מעקב. התאם אישית אותם והשתמש ב- רֶשֶׁת() מנהל לארגן אותם בפורמט שורות ועמודות. אתה יכול להגדיר את השיר להיות נוכח בשורה הראשונה ולהוסיף קצת ריפוד כדי למנוע חפיפה ולהפוך את העיצוב ליפה יותר.
trackframe = LabelFrame (self.root, text="רצועת שיר",font=("אריאל",15,"נוֹעָז"),bg="#8F00FF",fg="לבן",bd=5,relief=GROOVE)
trackframe.place (x=0,y=0,רוחב=600,גובה=100)
רצועת השיר = Label (trackframe, textvariable=self.track, width=20,font=("אריאל",24,"נוֹעָז"),bg="#8F00FF",fg="#B0FC38").grid (שורה=0,עמודה=0,padx=10,פאדי=5)
trackstatus = תווית (trackframe, textvariable=self.status, font=("אריאל",24,"נוֹעָז"),bg="#8F00FF",fg="#B0FC38").grid (שורה=0,עמודה=1,padx=10,פאדי=5)
באופן דומה, הגדירו מסגרת שתכיל ארבעה כפתורים. התאם אישית וארגן אותו מתחת למסגרת המסלול. הגדר ארבעה כפתורים, לְשַׂחֵק, הַפסָקָה, בטל את ההשהיה, ו תפסיק. הגדר את חלון האב שאתה רוצה לשים בו את הכפתורים, את הטקסט שהוא צריך להציג, את הפונקציות שהוא צריך להפעיל בלחיצה, הרוחב, הגובה, סגנון הגופן, צבע הרקע וצבע הגופן היה צריך.
להשתמש ב רֶשֶׁת() מנהל לארגן את הכפתורים בשורה אחת ובארבע עמודות שונות.
buttonframe = LabelFrame (self.root, text="לוח בקרה",font=("אריאל",15,"נוֹעָז"),bg="#8F00FF",fg="לבן",bd=5,relief=GROOVE)
buttonframe.place (x=0,y=100,רוחב=600,גובה=100)
playbtn = לחצן (מסגרת לחצנים, טקסט="לְשַׂחֵק",command=self.playsong, width=6,גובה=1,font=("אריאל",16,"נוֹעָז"),fg="כחול כהה",bg="#B0FC38").grid (שורה=0,עמודה=0,padx=10,פאדי=5)
playbtn = לחצן (מסגרת לחצנים, טקסט="הַפסָקָה",command=self.pausesong, width=8,גובה=1,font=("אריאל",16,"נוֹעָז"),fg="כחול כהה",bg="#B0FC38").grid (שורה=0,עמודה=1,padx=10,פאדי=5)
playbtn = לחצן (מסגרת לחצנים, טקסט="UNPAUSE",command=self.unpausesong, width=10,גובה=1,font=("אריאל",16,"נוֹעָז"),fg="כחול כהה",bg="#B0FC38").grid (שורה=0,עמודה=2,padx=10,פאדי=5)
playbtn = לחצן (מסגרת לחצנים, טקסט="תפסיק",command=self.stopsong, width=6,גובה=1,font=("אריאל",16,"נוֹעָז"),fg="כחול כהה",bg="#B0FC38").grid (שורה=0,עמודה=3,padx=10,פאדי=5)
הגדר LabelFrame, מסגרת שיר. זה יכיל את השירים שברצונך להשמיע בנגן המוזיקה שלך. התאם אישית את המאפיינים של המסגרת והצב אותה בצד ימין של המסלול ומסגרת הכפתורים. הוסף פס גלילה אנכי כדי לגשת לשירים גם כאשר רשימת השירים שלך ארוכה.
להשתמש ב קופסת רשימה ווידג'ט להצגת השירים. הגדר את צבע הרקע שיוצג בעת בחירת הטקסט, ואת המצב. מצב הסינגל מאפשר לך לבחור שיר אחד בכל פעם. בנוסף, אתחול סגנון הגופן, צבע הרקע, צבע הגופן, רוחב הגבול וסגנון התלת-ממד הרצוי סביבו.
songsframe = LabelFrame (self.root, text="רשימת השמעה של שירים",font=("אריאל",15,"נוֹעָז"),bg="#8F00FF",fg="לבן",bd=5,relief=GROOVE)
songsframe.place (x=600,y=0,רוחב=400,גובה=200)
scroll_y = סרגל גלילה (מסגרת שירים, orient=VERTICAL)
self.playlist = Listbox (songsframe, yscrollcommand=scroll_y.set, selectbackground="#B0FC38",selectmode=SINGLE, font=("אריאל",12,"נוֹעָז"),bg="#CF9FFF",fg="כחול כהה",bd=5,relief=GROOVE)
ארוז את פס הגלילה לצד ימין של החלון ומלא אותו בתור Y. זה מבטיח שבכל פעם שאתה מרחיב את החלון, סרגל הגלילה מתרחב גם לכיוון Y. הגדר את תיבת הרשימה כדי להשתמש ב- yview שיטה של פס הגלילה כדי לגלול אנכית. ארוז את תיבת הרשימה כדי לקחת את החלל הן אופקית והן אנכית.
שנה את ספריית העבודה הנוכחית לנתיב שצוין. חזור על השירים והכנס אותם לתיבת הרשימה בזה אחר זה. אתה משתמש סוֹף כארגומנט הראשון שכן ברצונך להוסיף שורות חדשות לסוף תיבת הרשימה.
scroll_y.pack (צד=ימינה, מילוי=Y)
scroll_y.config (command=self.playlist.yview)
self.playlist.pack (fill=BOTH)
os.chdir("נתיב_לתיקיית_השירים שלך")
שירים = os.listdir()
ל מַסלוּל ב רצועות שירים:
self.playlist.insert (END, רצועה)
הגדר פונקציה, לנגן שיר. הגדר את הרצועה כך שתציג את שם השיר יחד עם הסטטוס כ -משחק. להשתמש ב לִטעוֹן() ו לְשַׂחֵק() פונקציות של מודול mixer.music של PyGame לטעינת מוזיקה להשמעה ולהתחיל אותה.
defלנגן שיר(עצמי):
self.track.set (self.playlist.get (ACTIVE))
self.status.set("-משחק")
pygame.mixer.music.load (self.playlist.get (ACTIVE))
pygame.mixer.music.play()
באופן דומה, הגדר פונקציות לעצור, להשהות ולבטל את ההשהיה של השירים באמצעות תפסיק(), הַפסָקָה(), ו בטל הפסקה().
defשיר עצירה(עצמי):
self.status.set("-עצר")
pygame.mixer.music.stop()defשיר הפסקה(עצמי):
self.status.set("-מושהה")
pygame.mixer.music.pause()
defביטול הפסקה(עצמי):
self.status.set("-משחק")
pygame.mixer.music.unpause()
אתחול המופע של Tkinter והצג את חלון הבסיס על ידי העברתו למחלקה. ה mainloop() הפונקציה אומרת לפייתון להפעיל את לולאת האירועים של Tkinter ולהקשיב לאירועים עד שתסגור את החלון.
root = Tk()
MusicPlayer (שורש)
root.mainloop()
חבר את כל הקוד יחד, ויש לך את נגן המוזיקה שלך מוכן לנגינה בקצות אצבעותיך. אתה יכול להתאים אישית את נגן המוזיקה שלך עוד יותר על ידי הוספת אובייקטים וצורות באמצעות מודולי הציור של PyGame.
פלט של אפליקציית נגן המוזיקה באמצעות Python
בהפעלת התוכנית, נגן המוזיקה מפעיל את השירים שבחרת כפלייליסט. על בחירת כל אחד מהשירים ולחיצה על לְשַׂחֵק לחצן, המוזיקה מתחילה להתנגן. באופן דומה, המוזיקה משתהה, מפסיקה את ההשהייה ומפסיקה לנגן בלחיצה על הכפתורים המתאימים.
בניית משחקים עם מודול PyGame
PyGame הוא מודול רב עוצמה שתוכל להשתמש בו כדי לבנות משחקים כמו Frets on Fire, Flappy Bird, Snake, Super Potato Bruh, Sudoku ועוד. ל- PyGame עיצוב מונחה עצמים, כך שתוכל לעשות שימוש חוזר בקודים ולהתאים אישית את הדמויות של המשחקים שלך בקלות.
הוא תומך ומספק כלי גרפיקה, צלילים, קלט ופלט מעולים, כך שתוכל להתמקד בעיצוב המשחק שלך במקום להשקיע את זמנך בקידוד של כל דקה. לחלופין, אתה יכול לחקור את Pyglet ו-Kivy שהם מהירים יותר, תומכים בפרויקטים תלת מימדיים, הם אינטואיטיביים יותר ומגיעים עם עדכונים קבועים.