Create an MP3 Music Player in Python

                              Create an MP3 Music Player in Python

                  Python MP3 Music Player

We will create an mp3 music player in which we can play the song, pause it, resume it, and navigate from the current song to the next song as well as previous songs.

We will be using Python and its libraries. The first library that we will be using is Tkinter which is a widely used GUI library offered by python, we do not have to install it separately, as it comes with python itself.

Next, we will be using the mixer module of a very famous python library called Pygame.

Pygame is basically used to create video games, it includes computer graphics and sound libraries. Mixer is one such sound library. Then, we will use the os library of python to interact with the Operating system.

        Project Prerequisites

To work on python mp3 player basic understanding of python programming language, tkinter, and mixer module of pygame would be helpful.

A basic understanding of Tkinter widgets would also be required, but don’t worry as we will be explaining every line of code as we go developing this mp3 player project.

Unlike the Tkinter library, we are required to install the Pygame library.

Please run following command in your command prompt or terminal to install pygame.

                        pip install pygame

       Steps to develop this project

1.Import important libraries

2.Create the project layout

3.Define play, pause, and other music player functions

Import important libraries

#importing libraries 

from pygame import mixer

from tkinter import *

import tkinter.font as font

from tkinter import filedialog

#add many songs to the playlist of python mp3 player

def addsongs():

    #to open a file  

    temp_song=filedialog.askopenfilenames(initialdir="Music/",title="Choose a song", filetypes=(("mp3 Files","*.mp3"),))

    ##loop through every item in the list to insert in the listbox

for s in temp_song:

        s=s.replace("C:/Users/DataFlair/python-mp3-music-player/","")

songs_list.insert(END,s)

def deletesong():

    curr_song=songs_list.curselection()

    songs_list.delete(curr_song[0])

def Play():

    song=songs_list.get(ACTIVE)

    song=f'C:/Users/lenovo/Desktop/DataFlair/Notepad/Music/{song}'

    mixer.music.load(song)

    mixer.music.play()

#to pause the song 

def Pause():

    mixer.music.pause()

#to stop the  song 

def Stop():

    mixer.music.stop()

    songs_list.selection_clear(ACTIVE)

#to resume the song

def Resume():

    mixer.music.unpause()

#Function to navigate from the current song

def Previous():

    #to get the selected song index

    previous_one=songs_list.curselection()

    #to get the previous song index

    previous_one=previous_one[0]-1

    #to get the previous song

    temp2=songs_list.get(previous_one)

                   temp2=f'C:/Users/DataFlair/python-mp3-music-player/{temp2}'

    mixer.music.load(temp2)

    mixer.music.play()

    songs_list.selection_clear(0,END)

    #activate new song

    songs_list.activate(previous_one)

    #set the next song

    songs_list.selection_set(previous_one)

def Next():

    #to get the selected song index

    next_one=songs_list.curselection()

    #to get the next song index

    next_one=next_one[0]+1

    #to get the next song 

    temp=songs_list.get(next_one)

            temp=f'C:/Users/DataFlair/python-mp3-music-player/{temp}'

    mixer.music.load(temp)

    mixer.music.play()

    songs_list.selection_clear(0,END)

    #activate newsong

    songs_list.activate(next_one)

     #set the next song

songs_list.selection_set(next_one)

#creating the root window 

root=Tk()

root.title('DataFlair Python MP3 Music player App ')

#initialize mixer 

mixer.init()

#create the listbox to contain songs

songs_list=Listbox(root,selectmode=SINGLE,bg="black",fg="white",font=('arial',15),height=12,width=47,selectbackground="gray",selectforeground="black")

songs_list.grid(columnspan=9)

#font is defined which is to be used for the button font 

defined_font = font.Font(family='Helvetica')

#play button

play_button=Button(root,text="Play",width =7,command=Play)

play_button['font']=defined_font

play_button.grid(row=1,column=0)

#pause button 

pause_button=Button(root,text="Pause",width =7,command=Pause)

pause_button['font']=defined_font

pause_button.grid(row=1,column=1)

#stop button

stop_button=Button(root,text="Stop",width =7,command=Stop)

stop_button['font']=defined_font

stop_button.grid(row=1,column=2)

#resume button

Resume_button=Button(root,text="Resume",width =7,command=Resume)

Resume_button['font']=defined_font

Resume_button.grid(row=1,column=3)

#previous button

previous_button=Button(root,text="Prev",width =7,command=Previous)

previous_button['font']=defined_font

previous_button.grid(row=1,column=4)

#nextbutton

next_button=Button(root,text="Next",width =7,command=Next)

next_button['font']=defined_font

next_button.grid(row=1,column=5)

#menu 

my_menu=Menu(root)

root.config(menu=my_menu)

add_song_menu=Menu(my_menu)

my_menu.add_cascade(label="Menu",menu=add_song_menu)

add_song_menu.add_command(label="Add songs",command=addsongs)

add_song_menu.add_command(label="Delete song",command=deletesong)

mainloop()

pip install pygame
pip install pygame

1 comment:

Powered by Blogger.