Accueil Technologie

Comment construire un lecteur de musique en utilisant Python

Les lecteurs de musique ont évolué rapidement avec le temps. Cela a commencé avec les gramophones, les juke-boxes, les lecteurs de CD et les lecteurs MP3. Aujourd’hui, vous pouvez écouter de la musique sur votre téléphone portable ou votre ordinateur. En explorant ce concept, développez une application de lecteur de musique à l’aide de Python et de groove off.


Le module Tkinter, PyGame et OS

Pour construire le lecteur de musique, vous avez besoin des modules Tkinter, PyGame et OS. Tkinter est la bibliothèque standard d’interface graphique pour Python que vous pouvez utiliser pour créer des applications de bureau. Elle offre une variété de widgets tels que des boutons, des étiquettes et des zones de texte afin que vous puissiez développer des applications en un rien de temps. Pour installer Tkinter, ouvrez un terminal et exécutez :

 pip install tkinter 

PyGame vous permet de développer des jeux vidéo étonnants qui peuvent fonctionner sur n’importe quelle plateforme. PyGame est simple à utiliser et comprend des bibliothèques graphiques et sonores qui accélèrent le processus de développement. Vous utiliserez les fonctions suivantes de PyGame mixer.music pour fournir diverses fonctionnalités à votre lecteur de musique. Pour installer PyGame, exécutez :

 pip install pygame 

Enfin, vous avez besoin du module OS pour charger les chansons dans votre système. Le module OS est fourni avec la bibliothèque standard de Python et ne nécessite pas d’installation séparée. Avec ce module, vous pouvez accéder à des fonctions spécifiques au système pour gérer votre système d’exploitation.

Comment construire un lecteur de musique en utilisant Python

Vous pouvez trouver le code source de l’application Music Player utilisant Python dans ce dépôt GitHub.

Commencez par importer les modules Tkinter, PyGame et OS. Définissez une classe, Joueur de musique. Définir le __init__ que le programme appelle au moment de la création de l’objet. Vous pouvez utiliser l’instance self pour accéder à toute variable ou méthode de la classe.

Initialiser la fenêtre racine, et définir le titre et les dimensions de votre lecteur de musique. Initialiser tous les modules PyGame importés ainsi que le module mixer. Définissez la piste et le statut comme étant de type StringVar type. Ce type permet de définir une valeur textuelle et de la récupérer en cas de besoin.

 from tkinter import *
import pygame
import os

class MusicPlayer:

  def __init__(self,root):
    self.root = root
    self.root.title("Music Player")
    self.root.geometry("1000x200")
    pygame.init()
    pygame.mixer.init()
    self.track = StringVar()
    self.status = StringVar()

Définir un LabelFrame qui contiendra le piste de chant et le label état de la piste étiquette. Labelframe agit comme un conteneur et affiche les étiquettes à l’intérieur d’une zone de bordure. Définissez la fenêtre parentale dans laquelle vous souhaitez placer le cadre, le texte qu’il doit afficher, les styles de police, la couleur d’arrière-plan, la couleur de la police, la largeur de la bordure et les effets 3D à l’extérieur du widget.

Utiliser l’outil place() pour organiser le cadre. Définissez deux étiquettes, piste de chant et état de la piste. Personnalisez-les et utilisez la fonction grid() pour les organiser en lignes et en colonnes. Vous pouvez faire en sorte que la piste de chant soit présente dans la première ligne et ajouter un peu de remplissage pour éviter les chevauchements et rendre le design plus beau.

     trackframe = LabelFrame(self.root,text="Song Track",font=("arial",15,"bold"),bg="#8F00FF",fg="white",bd=5,relief=GROOVE)
    trackframe.place(x=0,y=0,width=600,height=100)
    songtrack = Label(trackframe,textvariable=self.track,width=20,font=("arial",24,"bold"),bg="#8F00FF",fg="#B0FC38").grid(row=0,column=0,padx=10,pady=5)
    trackstatus = Label(trackframe,textvariable=self.status,font=("arial",24,"bold"),bg="#8F00FF",fg="#B0FC38").grid(row=0,column=1,padx=10,pady=5)

De même, définissez un cadre qui contiendra quatre boutons. Personnalisez-le et organisez-le sous le cadre de la piste. Définissez quatre boutons, Lecture, Pause, Unpauseet Stop. Définissez la fenêtre parente dans laquelle vous souhaitez placer les boutons, le texte qu’elle doit afficher, les fonctions qu’elle doit exécuter en cas de clic, la largeur, la hauteur, le style de police, la couleur d’arrière-plan et la couleur de la police qu’elle doit avoir.

Utiliser la fonction grid() pour organiser les boutons sur une seule ligne et quatre colonnes différentes.

     buttonframe = LabelFrame(self.root,text="Control Panel",font=("arial",15,"bold"),bg="#8F00FF",fg="white",bd=5,relief=GROOVE)
    buttonframe.place(x=0,y=100,width=600,height=100)
    playbtn = Button(buttonframe,text="PLAY",command=self.playsong,width=6,height=1,font=("arial",16,"bold"),fg="navyblue",bg="#B0FC38").grid(row=0,column=0,padx=10,pady=5)
    playbtn = Button(buttonframe,text="PAUSE",command=self.pausesong,width=8,height=1,font=("arial",16,"bold"),fg="navyblue",bg="#B0FC38").grid(row=0,column=1,padx=10,pady=5)
    playbtn = Button(buttonframe,text="UNPAUSE",command=self.unpausesong,width=10,height=1,font=("arial",16,"bold"),fg="navyblue",bg="#B0FC38").grid(row=0,column=2,padx=10,pady=5)
    playbtn = Button(buttonframe,text="STOP",command=self.stopsong,width=6,height=1,font=("arial",16,"bold"),fg="navyblue",bg="#B0FC38").grid(row=0,column=3,padx=10,pady=5)

Définir un LabelFrame, cadre de chanson. Ce cadre contiendra les chansons que vous souhaitez lire sur votre lecteur de musique. Personnalisez les propriétés du cadre et placez-le à droite du cadre des pistes et des boutons. Ajoutez une barre de défilement verticale pour accéder aux chansons même lorsque votre liste de chansons est longue.

Utiliser le Boîte de liste pour afficher les chansons. Définissez la couleur d’arrière-plan à afficher lorsque vous sélectionnez le texte, ainsi que le mode. Le mode unique vous permet de sélectionner une chanson à la fois. En outre, initialisez le style de police, la couleur d’arrière-plan, la couleur de la police, la largeur de la bordure et le style 3D que vous souhaitez utiliser pour l’entourer.

     songsframe = LabelFrame(self.root,text="Song Playlist",font=("arial",15,"bold"),bg="#8F00FF",fg="white",bd=5,relief=GROOVE)
    songsframe.place(x=600,y=0,width=400,height=200)
    scroll_y = Scrollbar(songsframe,orient=VERTICAL)
    self.playlist = Listbox(songsframe,yscrollcommand=scroll_y.set,selectbackground="#B0FC38",selectmode=SINGLE,font=("arial",12,"bold"),bg="#CF9FFF",fg="navyblue",bd=5,relief=GROOVE)

Placez la barre de défilement sur le côté droit de la fenêtre et remplissez-la de Y. Cela garantit que lorsque vous agrandissez la fenêtre, la barre de défilement s’agrandit également dans la direction Y. Configurez la zone de liste pour qu’elle utilise la fonction yview méthode de la barre de défilement pour le défilement vertical. La zone de liste est remplie de façon à occuper l’espace à la fois horizontalement et verticalement.

Changer le répertoire de travail actuel pour le chemin spécifié. Interrogez les chansons et insérez-les une à une dans la zone de liste. Vous utilisez FIN comme premier argument, car vous souhaitez ajouter de nouvelles lignes à la fin de la boîte à liste.

     scroll_y.pack(side=RIGHT,fill=Y)
    scroll_y.config(command=self.playlist.yview)
    self.playlist.pack(fill=BOTH)
    os.chdir("Path_to_your_songs_folder")
    songtracks = os.listdir()
    for track in songtracks:
      self.playlist.insert(END,track)

Définir une fonction, playsong. Régler la piste pour qu’elle affiche le nom de la chanson ainsi que l’état comme suit -En lecture. Utiliser le load() et play() fonctions du module mixer.music de PyGame pour charger la musique à lire et la lancer.

   def playsong(self):
    self.track.set(self.playlist.get(ACTIVE))
    self.status.set("-Playing")
    pygame.mixer.music.load(self.playlist.get(ACTIVE))
    pygame.mixer.music.play()

De même, définissez des fonctions pour arrêter, mettre en pause et remettre en pause les chansons à l’aide du module stop(), pause()et unpause().

   def stopsong(self):
    self.status.set("-Stopped")
    pygame.mixer.music.stop()

  def pausesong(self):
    self.status.set("-Paused")
    pygame.mixer.music.pause()

  def unpausesong(self):
    self.status.set("-Playing")
    pygame.mixer.music.unpause()

Initialiser l’instance Tkinter et afficher la fenêtre racine en la passant à la classe. L’instance mainloop() indique à Python de lancer la boucle d’événements Tkinter et d’écouter les événements jusqu’à ce que vous fermiez la fenêtre.

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

Assemblez tout ce code et vous obtenez un lecteur de musique prêt à être joué du bout des doigts. Vous pouvez personnaliser votre lecteur de musique encore plus en ajoutant des objets et des formes en utilisant les modules de dessin de PyGame.

Sortie d’une application de lecteur de musique en utilisant Python

Lorsque le programme est lancé, le lecteur de musique lance les chansons que vous avez sélectionnées en tant que liste de lecture. En choisissant l’une des chansons et en appuyant sur le bouton Jouer la musique commence à jouer. De même, la musique se met en pause, s’interrompt et s’arrête en cliquant sur les boutons appropriés.

Application de lecteur de musique avec Python

Construire des jeux avec le module PyGame

PyGame est un module puissant que vous pouvez utiliser pour construire des jeux comme Frets on Fire, Flappy Bird, Snake, Super Potato Bruh, Sudoku, et plus encore. PyGame a une conception orientée objet, ce qui vous permet de réutiliser les codes et de personnaliser les personnages de vos jeux facilement.

Il supporte et fournit d’excellents outils graphiques, sonores, d’entrée et de sortie, ce qui vous permet de vous concentrer sur la conception de votre jeu plutôt que d’investir votre temps dans le codage de chaque fonctionnalité. Vous pouvez également explorer Pyglet et Kivy qui sont plus rapides, supportent les projets 3D, sont plus intuitifs et viennent avec des mises à jour régulières.

Leave your vote

0 0 votes
Évaluation de l'article
S’abonner
Notification pour
guest
0 Commentaires
Commentaires en ligne
Afficher tous les commentaires

Log In

Forgot password?

Don't have an account? Register

Forgot password?

Enter your account data and we will send you a link to reset your password.

Your password reset link appears to be invalid or expired.

Log in

Privacy Policy

Add to Collection

No Collections

Here you'll find all collections you've created before.

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x

Newsletter

inscrivez vous pour recevoir nos actualités

Actualités, astuces, bons plans et cadeaux !