Tkinter 音乐播放器应用(Python 项目)

原文:https://www.studytonight.com/tkinter/music-player-application-using-tkinter

在本教程中,我们将使用 TkinterPygame 模块用 Python 创建一个音乐播放器应用。

在我们的日常生活中,我们看到每个人都有一个爱好,那就是听音乐。所以为了听音乐,他们都需要一个音乐播放器(硬件或软件),可以播放自己喜欢的歌曲。我们必须在我们的电脑上安装这个音乐播放器,基于操作系统,即视窗、麦金塔、安卓、Linux 等。然后我们可以听我们喜欢的歌。

现在我们将帮助您从头开始编码和创建音乐播放器。

用于音乐播放器应用的库:

现在,我们将告诉您我们将在代码中使用的库:

1.Tkinter

我们已经在这个页面的标题中告诉过您,我们将使用 Tkinter 库,这是一个用于 GUI 创建的标准库。Tkinter 库是最受欢迎的,也非常容易使用,它附带了许多小部件(这些小部件有助于创建好看的图形用户界面应用)。

此外,Tkinter 是一个非常轻量级的模块,它有助于创建跨平台应用(因此相同的代码可以轻松地在 WindowsmacOSLinux 上工作)

To use all the functions of Tkinter you need to import it in your code and the command for the same is:

from tkinter import *

2.Pygame 模组

Pygame 是一个 Python 模块,可与计算机图形和声音库一起工作,设计时具有播放音频、视频等不同多媒体格式的能力。在创建我们的音乐播放器应用时,我们将使用 Pygame 的mixer.music模块为我们的音乐播放器应用提供不同的功能,这些功能通常与歌曲轨道的操作有关。

用于安装 pygame 模块的命令是:

pip install pygame

要在代码中使用该模块,您需要编写以下内容:

import pygame

3。操作系统模块

没有必要显式安装这个模块,因为它附带了 Python 的标准库。该模块提供了与操作系统交互的不同功能。在本教程中,我们将使用操作系统模块从指定目录中获取歌曲播放列表,并将其提供给音乐播放器应用。

要在代码中使用此模块,您需要导入其和命令,如下所示:

import OS

导入库和模块后,现在是时候创建一个基本窗口,我们将在其中添加我们的用户界面元素或 Tkinter 小部件。您可以在导入库之后,也可以在根窗口循环之前的末尾添加此代码,代码如下:

root = Tk() # In order to create an empty window
# Passing Root to MusicPlayer Class
MusicPlayer(root)

音乐播放器类

这里我们有在 MusicPlayer 类中定义的构造器和其他函数。

1._init_建造师

在这个构造器的帮助下,我们将为窗口设置标题,为窗口设置几何图形。我们将启动 pygame 和 pygame 混合器,然后声明轨迹变量和状态变量。

  • 然后我们将歌曲标签 & 状态标签创建轨道帧,然后在插入歌曲轨道标签和状态标签之后。

  • 之后,我们将创建按钮框将播放、暂停、取消播放和停止按钮插入其中。

  • 然后我们将创建播放列表框**并在其中添加滚动条**,我们将向播放列表中添加歌曲。

代码片段如下:

def __init__(self,root):
    self.root = root
    # Title of the window
    self.root.title("MusicPlayer")
    # Window Geometry
    self.root.geometry("1000x200+200+200")
    # Initiating Pygame
    pygame.init()
    # Initiating Pygame Mixer
    pygame.mixer.init()
    # Declaring track Variable
    self.track = StringVar()
    # Declaring Status Variable
    self.status = StringVar()

    # Creating the Track Frames for Song label & status label
    trackframe = LabelFrame(self.root,text="Song Track",font=("times new roman",15,"bold"),bg="Navyblue",fg="white",bd=5,relief=GROOVE)
    trackframe.place(x=0,y=0,width=600,height=100)
    # Inserting Song Track Label
    songtrack = Label(trackframe,textvariable=self.track,width=20,font=("times new roman",24,"bold"),bg="Orange",fg="gold").grid(row=0,column=0,padx=10,pady=5)
    # Inserting Status Label
    trackstatus = Label(trackframe,textvariable=self.status,font=("times new roman",24,"bold"),bg="orange",fg="gold").grid(row=0,column=1,padx=10,pady=5)

    # Creating Button Frame
    buttonframe = LabelFrame(self.root,text="Control Panel",font=("times new roman",15,"bold"),bg="grey",fg="white",bd=5,relief=GROOVE)
    buttonframe.place(x=0,y=100,width=600,height=100)
    # Inserting Play Button
    playbtn = Button(buttonframe,text="PLAYSONG",command=self.playsong,width=10,height=1,font=("times new roman",16,"bold"),fg="navyblue",bg="pink").grid(row=0,column=0,padx=10,pady=5)
    # Inserting Pause Button
    playbtn = Button(buttonframe,text="PAUSE",command=self.pausesong,width=8,height=1,font=("times new roman",16,"bold"),fg="navyblue",bg="pink").grid(row=0,column=1,padx=10,pady=5)
    # Inserting Unpause Button
    playbtn = Button(buttonframe,text="UNPAUSE",command=self.unpausesong,width=10,height=1,font=("times new roman",16,"bold"),fg="navyblue",bg="pink").grid(row=0,column=2,padx=10,pady=5)
    # Inserting Stop Button
    playbtn = Button(buttonframe,text="STOPSONG",command=self.stopsong,width=10,height=1,font=("times new roman",16,"bold"),fg="navyblue",bg="pink").grid(row=0,column=3,padx=10,pady=5)

    # Creating Playlist Frame
    songsframe = LabelFrame(self.root,text="Song Playlist",font=("times new roman",15,"bold"),bg="grey",fg="white",bd=5,relief=GROOVE)
    songsframe.place(x=600,y=0,width=400,height=200)
    # Inserting scrollbar
    scrol_y = Scrollbar(songsframe,orient=VERTICAL)
    # Inserting Playlist listbox
    self.playlist = Listbox(songsframe,yscrollcommand=scrol_y.set,selectbackground="gold",selectmode=SINGLE,font=("times new roman",12,"bold"),bg="silver",fg="navyblue",bd=5,relief=GROOVE)
    # Applying Scrollbar to listbox
    scrol_y.pack(side=RIGHT,fill=Y)
    scrol_y.config(command=self.playlist.yview)
    self.playlist.pack(fill=BOTH)
    # Changing Directory for fetching Songs
    os.chdir("PATH/OF/DIRECTORY")
    # Fetching Songs
    songtracks = os.listdir()
    # Inserting Songs into Playlist
    for track in songtracks:
      self.playlist.insert(END,track)

在上面的代码中,用存储歌曲文件的适当路径更改路径/OF/DIRECTORY

2.playsong()功能

现在我们将定义播放歌曲功能,代码为:

 def playsong(self):
    # Displaying Selected Song title
    self.track.set(self.playlist.get(ACTIVE))
    # Displaying Status
    self.status.set("-Playing")
    # Loading Selected Song
    pygame.mixer.music.load(self.playlist.get(ACTIVE))
    # Playing Selected Song
    pygame.mixer.music.play()

3.stopsong()功能

停止歌曲的代码片段:

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

4.pausesong()功能

暂停歌曲的代码片段:

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

5.unpausesong()功能

解包歌曲的代码片段:

 def unpausesong(self):
    # It will Display the  Status
    self.status.set("-Playing")
    # Playing back Song
    pygame.mixer.music.unpause()

6.根窗口循环

该命令将是:

root.mainloop()

下面是我们应用的一些截图:

名为 study 的文件夹今晚放置歌曲的代码文件和文件夹如下所示:

Tkinter Music player application

我们将在代码中提供歌曲文件夹的路径,所有歌曲都放在该文件夹中,以便访问它们。

下面的截图向您展示了应用的外观:

Tkinter Music player application

每当你点击歌曲时,它会是这样的:

Tkinter Music player application

点击播放歌曲按钮:

Tkinter Music player application

点击暂停按钮:

Tkinter Music player application

点击停止按钮:

Tkinter Music player application

所以这都是关于使用 Tkinter 构建音乐播放器应用。希望大家喜欢这个应用。请与我们分享更多关于基于 Tkinter 的桌面应用的想法,我们一定会在我们的 Tkinter 教程中添加更多的 Tkinter 项目。