|
| 1 | +#!/usr/bin/python3 |
| 2 | +# Music Player Tkinter |
| 3 | +# |
| 4 | + |
| 5 | +import os,sys |
| 6 | +from tkinter import * |
| 7 | +from tkinter.filedialog import askopenfilename |
| 8 | +from pygame import mixer,error |
| 9 | + |
| 10 | +class Music_Player(Tk): |
| 11 | + def __init__(self): |
| 12 | + super(Music_Player,self).__init__() |
| 13 | + event = None |
| 14 | + self.title("Music Player") |
| 15 | + self.geometry("300x200+500+95") |
| 16 | + self.resizable(0,0) |
| 17 | + icon = PhotoImage(file="./icon/music-player-icon.png") |
| 18 | + self.iconphoto(False,icon) |
| 19 | + menu = Menu(self) |
| 20 | + self.configure(menu=menu) |
| 21 | + filemenu = Menu(menu,tearoff=0) |
| 22 | + filemenu.add_command(label="Open File",accelerator="Ctrl+O",command=lambda: self.open_file(event)) |
| 23 | + filemenu.add_separator() |
| 24 | + filemenu.add_command(label="Exit",accelerator="Alt+F4",command=self.quit) |
| 25 | + menu.add_cascade(label="File",menu=filemenu) |
| 26 | + play_btn = Button(self,text="Play",width=5,height=2,foreground="#fff000",background="#333",command=self.play_music).pack(padx=3,pady=3) |
| 27 | + pause_btn = Button(self,text="Pause",width=5,height=2,foreground="#fff000",background="#333",command=self.pause_music).pack(padx=3,pady=3) |
| 28 | + stop_btn = Button(self,text="Stop",width=5,height=2,foreground="#fff000",background="#333",command=self.stop_music).pack(padx=3,pady=3) |
| 29 | + self.bind("<Control-o>",lambda event: self.open_file(event)) |
| 30 | + self.configure(background="black") |
| 31 | + def play_music(self): |
| 32 | + mixer.music.play() |
| 33 | + def pause_music(self): |
| 34 | + mixer.music.pause() |
| 35 | + def stop_music(self): |
| 36 | + mixer.music.stop() |
| 37 | + def open_file(self,event): |
| 38 | + try: |
| 39 | + user_name = os.getlogin() |
| 40 | + file_types = ( |
| 41 | + ("All Files","*.*"), |
| 42 | + ("MP3",".mp3") |
| 43 | + ) |
| 44 | + file_ = askopenfilename(initialdir=os.path.normpath("C://Users//{user_name}//Musics"),title="Open File",filetype=file_types) |
| 45 | + mixer.init() |
| 46 | + mixer.music.load(str(file_)) |
| 47 | + except (Exception,error): |
| 48 | + sys.exit() |
| 49 | +def main(): |
| 50 | + window = Music_Player() |
| 51 | + window.mainloop() |
| 52 | + |
| 53 | +if __name__ == "__main__": |
| 54 | + main() |
0 commit comments