基于Python实现音乐播放器的实现示例代码

目录
  • 一、环境设置
  • 二、播放功能
  • 三、停止功能
  • 四、暂停与恢复
  • 五、关闭
  • 六、完整代码
  • 七、改进

一、环境设置

第一步引入必须的各类包

import os
import tkinter
import tkinter.filedialog
import random
import time
import threading
import pygame

特别是pygame需要手动安装

pip install pygame

二、播放功能

首先选择音乐目录,然后创建播放现成,播放音乐。

# 播放按钮
def buttonPlayClick():
    # 选择要播放的音乐文件夹
    global folder
    if not folder:
        folder = tkinter.filedialog.askdirectory()
    if not folder:
        return

    global playing
    playing = True
    # 创建一个线程来播放音乐,当前主线程用来接收用户操作
    t = threading.Thread(target=play)
    t.start()

    # 根据情况禁用和启用相应的按钮
    buttonPlay['state'] = 'disabled'
    buttonStop['state'] = 'normal'
    buttonPause['state'] = 'normal'
    buttonNext['state'] = 'normal'

    pause_resume.set('Pause')

buttonPlay = tkinter.Button(root,
                            text='Play',
                            command=buttonPlayClick)
buttonPlay.place(x=20, y=10, width=50, height=20)

三、停止功能

很直接,直接停止播放,当然更改按钮状态也属常规操作。

def buttonStopClick():
    global playing
    playing = False

    pygame.mixer.music.stop()
    musicName.set('暂时没有播放音乐')

    buttonPlay['state'] = 'normal'
    buttonStop['state'] = 'disabled'
    buttonPause['state'] = 'disabled'
    buttonNext['state'] = 'disabled'
    global folder
    folder = ''

buttonStop = tkinter.Button(root,
                            text='Stop',
                            command=buttonStopClick)
buttonStop.place(x=80, y=10, width=50, height=20)
buttonStop['state'] = 'disabled'

四、暂停与恢复

这个好理解,也是直接现成操作,加个判断,状态更改。

# 暂停与恢复,两个功能共用一个按钮
def buttonPauseClick():
    # global playing
    if pause_resume.get() == 'Pause':
        pygame.mixer.music.pause()
        pause_resume.set('Resume')
    elif pause_resume.get() == 'Resume':
        pygame.mixer.music.unpause()
        pause_resume.set('Pause')

五、关闭

先结束现成,然后关闭窗体。

# 关闭程序时执行的代码
def closeWindow():
    # 修改变量,结束线程中的循环
    global playing
    playing = False
    time.sleep(0.3)

    try:
        # 停止播放,如果已停止,
        # 再次停止时会抛出异常,所以放在异常处理结构中
        pygame.mixer.music.stop()
        pygame.mixer.quit()
    except:
        pass
    root.destroy()

六、完整代码

#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
@author:livingbody
@file:music_play.py
@time:2022/04/19
"""

import os
import tkinter
import tkinter.filedialog
import random
import time
import threading
import pygame

folder = ''

def play():
    # folder用来表示存放MP3音乐文件的文件夹
    global folder

    musics = [folder + '\' + music
              for music in os.listdir(folder) \
              if music.endswith(('.mp3', '.wav', '.ogg'))]

    # 初始化混音器设备
    pygame.mixer.init()
    while playing:
        if not pygame.mixer.music.get_busy():
            # 随机播放一首歌曲
            nextMusic = random.choice(musics)
            musicName.set('playing....' + nextMusic)
            pygame.mixer.music.load(nextMusic.encode())
            # 播放一次
            pygame.mixer.music.play(1)
        else:
            time.sleep(0.3)

root = tkinter.Tk()
root.title('音乐播放器v1.0')
root.geometry('280x70+400+300')
root.resizable(False, False)

# 关闭程序时执行的代码
def closeWindow():
    # 修改变量,结束线程中的循环
    global playing
    playing = False
    time.sleep(0.3)

    try:
        # 停止播放,如果已停止,
        # 再次停止时会抛出异常,所以放在异常处理结构中
        pygame.mixer.music.stop()
        pygame.mixer.quit()
    except:
        pass
    root.destroy()

root.protocol('WM_DELETE_WINDOW', closeWindow)

pause_resume = tkinter.StringVar(root, value='NotSet')
playing = False

# 播放按钮
def buttonPlayClick():
    # 选择要播放的音乐文件夹
    global folder
    if not folder:
        folder = tkinter.filedialog.askdirectory()
    if not folder:
        return

    global playing
    playing = True
    # 创建一个线程来播放音乐,当前主线程用来接收用户操作
    t = threading.Thread(target=play)
    t.start()

    # 根据情况禁用和启用相应的按钮
    buttonPlay['state'] = 'disabled'
    buttonStop['state'] = 'normal'
    buttonPause['state'] = 'normal'
    buttonNext['state'] = 'normal'

    pause_resume.set('Pause')

buttonPlay = tkinter.Button(root,
                            text='Play',
                            command=buttonPlayClick)
buttonPlay.place(x=20, y=10, width=50, height=20)

# 停止按钮
def buttonStopClick():
    global playing
    playing = False

    pygame.mixer.music.stop()
    musicName.set('暂时没有播放音乐')

    buttonPlay['state'] = 'normal'
    buttonStop['state'] = 'disabled'
    buttonPause['state'] = 'disabled'
    buttonNext['state'] = 'disabled'
    global folder
    folder = ''

buttonStop = tkinter.Button(root,
                            text='Stop',
                            command=buttonStopClick)
buttonStop.place(x=80, y=10, width=50, height=20)
buttonStop['state'] = 'disabled'

# 暂停与恢复,两个功能共用一个按钮
def buttonPauseClick():
    # global playing
    if pause_resume.get() == 'Pause':
        pygame.mixer.music.pause()
        pause_resume.set('Resume')
    elif pause_resume.get() == 'Resume':
        pygame.mixer.music.unpause()
        pause_resume.set('Pause')

buttonPause = tkinter.Button(root,
                             textvariable=pause_resume,
                             command=buttonPauseClick)
buttonPause.place(x=140, y=10, width=50, height=20)
buttonPause['state'] = 'disabled'

# 下一首音乐
def buttonNextClick():
    global playing
    playing = False
    pygame.mixer.music.stop()
    pygame.mixer.quit()
    buttonPlayClick()

buttonNext = tkinter.Button(root,
                            text='Next',
                            command=buttonNextClick)
buttonNext.place(x=200, y=10, width=50, height=20)
buttonNext['state'] = 'disabled'

musicName = tkinter.StringVar(root,
                              value='暂时没有播放音乐...')
labelName = tkinter.Label(root,
                          textvariable=musicName)
labelName.place(x=0, y=40, width=270, height=20)

if __name__ == '__main__':
    # 启动消息循环
    root.mainloop()

七、改进

下一步,可加入播放列表,点选播放音乐,也可以拖动进度播放。

以上就是基于Python实现音乐播放器的实现示例代码的详细内容,更多关于Python音乐播放器的资料请关注我们其它相关文章!

(0)

相关推荐

  • 利用Python编写本地音乐播放器

    先上完整代码: 修改文件夹路径即可运行 # -*- encoding: utf-8 -*- ''' @Description:       : @Date     :2022/03/24 17:43:26 @Author      :骤&雨 @version      :1.0 ''' #导入相关库文件 import os import tkinter import tkinter.filedialog import random import time import threading imp

  • Python编程实现简易的音乐播放器基本操作

    目录 安装 我们要做什么(逻辑) 启动播放器 加载歌曲 设置音量 开始播放歌曲 暂停歌曲 继续播放歌曲 设置音量(播放时再次使用) 停止歌曲 Code Music player in python 大家好,今天我们要看看如何用 Python制作音乐播放器.此音乐播放器播放您的歌曲,您可以在播放歌曲时暂停.恢复.设置音量,然后您可以停止音乐. 安装 pip install pygame 在 python 中,游戏编程是在pygame其中完成的,它是这样做的最佳模块之一. 为了在 中播放音乐/音频文

  • 自己用python做的一款超炫酷音乐播放器

    目录 前言 一.核心功能设计 UI设计排版布局 关键字音乐列表爬虫 音乐播放 附加功能 二.实现步骤 1. UI设计排版布局 2. 关键字音乐列表爬虫 3. 音乐播放 4. 附加功能 三.结束语 前言 晚上坐在电脑面前,想着一边撸代码,一边听音乐.搜了搜自己想听的歌,奈何好多歌曲都提示需要版权,无法播放! 没办法,想听歌还是得靠自己解决!今天就一起用python自制一款炫酷的音乐播放器吧~ 首先一起来看看最终实现的音乐播放器效果: 下面,我们开始介绍这个音乐播放器的制作过程. 一.核心功能设计

  • Python实现多功能音乐播放器详解

    目录 前言 准备工作 知识点和所需模块 环境 完整代码 效果展示 导入模块 界面 按钮 功能 创建一个文件目录 音乐读取功能 显示已加载的音乐 播放音乐 停止播放 下一首 上一首 音量控制 关闭窗口 前言 就是用Python做一个简易的音乐播放器,废话不多说,咱们直接开干 当然,今天做这个肯定不是最简单的,最简单的音乐播放器,9行代码足以 import time import pygame file = r'歌曲路径' pygame.mixer.init() print('正在播放',file)

  • Python趣味挑战之实现简易版音乐播放器

    一.前言 今天我们将用Python来创建一个属于自己的音乐播放器.为此,我们将使用三个软件包: Tkinter:用于UI Pygame:播放音乐 os:用于访问系统文件 在这里我们将看到创建音乐播放器的每个步骤,我们将代码分为四个部分. 二.实现过程 在第一部分中,我们将导入所有软件包.其次,我们将创建UI.第三,我们从系统中导入所有音乐并在APP应用程序中进行展示.第四,设计一个有助于播放特定音乐的功能. 在导入所有这三个软件包之前,我们必须在系统中安装这些软件包. pip install p

  • Python实现在线音乐播放器

    最近这几天,学习了一下python,对于爬虫比较感兴趣,就做了一个简单的爬虫项目,使用Python的库Tkinsert做了一个界面,感觉这个库使用起来还是挺方便的,音乐的数据来自网易云音乐的一个接口,通过requests模块,get请求将数据获得,使用Json模块进行数据的解析,最终使用python的mp3play库进行对音乐的在线播放,以下是该程序的源码. #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2016-12-28 21

  • python实现可下载音乐的音乐播放器

    本文实例为大家分享了tkinter+pygame+spider实现音乐播放器,供大家参考,具体内容如下 1.确定页面 SongSheet ------ 显示歌单 MusicCtrl ------显示音乐一些控件(播放,跳转,音量调节) SearchWindows ------搜索栏(搜索歌曲默认显示20条,可下载) songSheet.py #!/usr/bin/env python # -*- coding:utf-8 -*- # @Author: Minions # @Date: 2019-

  • 基于Python实现音乐播放器的实现示例代码

    目录 一.环境设置 二.播放功能 三.停止功能 四.暂停与恢复 五.关闭 六.完整代码 七.改进 一.环境设置 第一步引入必须的各类包 import os import tkinter import tkinter.filedialog import random import time import threading import pygame 特别是pygame需要手动安装 pip install pygame 二.播放功能 首先选择音乐目录,然后创建播放现成,播放音乐. # 播放按钮 d

  • 基于C#的音乐播放器主Form实现代码

    本文所述为一个由C#编写的音乐播放器的主Form代码,里面有一些小技巧还是不错的,现共享给大家参考一下.里面有播放器背景设置.线程定义.调用读取文件目录方法.播放时间计数器.设置LV背景.获取播放歌曲.播放按钮,切换播放or暂停.切换歌曲到下一首,调用切歌方法.显示播放列表.歌词局中.播放窗体最小化隐藏到托盘设置.进度条滚动模块.从歌曲列表中删除文件等等功能.且各个功能模板均备有较为详细的注释,便于大家阅读理解. 程序主要代码如下: using System; using System.Coll

  • 基于python实现音乐播放器代码实例

    核心播放模块(pygame内核) import time import pygame import easygui as gui file = r'D:\CloudMusic\G.E.M.邓紫棋,艾热 - 光年之外 (热爱版).mp3' #这里为音乐文件路径 pygame.mixer.init() gui.msgbox("正在播放"+file) track = pygame.mixer.music.load(file) pygame.mixer.music.play() time.sl

  • Android基于Service的音乐播放器

    本文开发一个基于Service的音乐播放器,音乐由后台运行的Service负责播放,当后台的播放状态发生变化时,程序将会通过发送广播通知前台Activity更新界面:当点击Activity的界面按钮时,系统将通过发送广播通知后台Service来改变播放状态. 前台Activity界面有两个按钮,分别用于控制播放/暂停.停止,另外还有两个文本框,用于显示正在播放的歌曲名.歌手名.前台Activity的代码如下: public class MainActivity extends AppCompat

  • python实现音乐播放器 python实现花框音乐盒子

    本文实例为大家分享了python实现音乐播放器的具体代码,供大家参考,具体内容如下 """这是一个用海龟画图模块和pygame的混音模块制作的简易播放器. 作者:李兴球,日期:2018/8/26""" from turtle import * def init_screen(): """初始化屏幕""" screen = Screen() screen.setup(width,heigh

  • c#基于winform制作音乐播放器

    前言:项目是c#的winform 写的,使用的播放器是基于AxWindowsMediaPlayer. AxWindowsMediaPlayer的方法 1 首先新建一个页面 如图所示: 图片左侧是列表 使用listview 右侧是背景图片.图片框框的地方是后面可以实现的,+和-按钮分别代表添加文件和删除文件 还有就是控制播放的顺序.下面的分别是修改歌词的字体 和展示/隐藏 2 新建一个透明的歌词页面[窗体] 3 新建一个半透明的页面[窗体] 4 业务代码 using System; using S

  • 使用Python的音乐播放器GUI的实现

    音乐播放器可让您快速轻松地管理和收听所有音乐文件.在本文中,我将带您了解如何使用 Python 创建音乐播放器 GUI. 如何使用 Python 创建音乐播放器 GUI? 第一步是选择一个 Python GUI 框架,这里我将使用两个主要的 GUI 库来使用 Python 创建音乐播放器: Pygame Tkinter Pygame 是一个用于创建视频游戏的 Python 库.要使用 Python 创建音乐播放器,我们将使用 Pygame 声音组件. Tkinter 是一个用于创建 GUI 应用

  • C#基于winform实现音乐播放器

    本文实例为大家分享了C#基于winform实现音乐播放器的具体代码,供大家参考,具体内容如下 首先,右键工具箱的组件,找到选择项,找到Windows Media Player组件并添加. 设计界面: 首先实现基本的功能 给“”老板播放器“的播放暂停添加代码 MusicPlayer.Ctlcontrols.play();  //播放 MusicPlayer.Ctlcontrols.pause();//暂停 MusicPlayer.Ctlcontrols.stop();//停止 首先给Windows

  • 基于vue的video播放器的实现示例

    当现有video播放器不能满足需求时,需要自己对video进行封装. video事件 loadstart: 在视频开始加载时触发,给currentTime赋值(历史播放记录或0). durationchange: 元信息已载入或已改变,视频的长度发生了改变.获取到视频长度(duration,并给currentTime赋值(历史播放记录或0)). playing: 在视频开始播放时触发(不论是初次播放.在暂停后恢复.或是在结束后重新开始). pause: 播放暂停时触发. timeupdate:

  • 基于Python制作三款起床闹钟的示例代码

    目录 导语 一.Turtle绘制时钟 1)代码展示 2)效果展示 二.Turtle实现模拟时钟 1)代码展示 2)效果展示 三.简易时钟 1)代码展示 2)效果展示 导语 叮叮叮,我们要按时长大 我是你们的木子同学!当当当当——隆重出场,撒花撒花~ 嗨!大家有没有生物钟不准时的时候,是不是每到休息日或者长假就会经常要倒时差? 每天上班最痛苦的事情就是早起早起早起!这是大部分上班族的痛苦,但是不上班又是不可能的啦,因为都是为了搞钱 今天小编就用代码示例化,给大家展示一下不同的时钟,希望大家按时上班

随机推荐