Python制作9行最简单音乐播放器?不,我不满足
创始人
2025-05-30 09:32:08
0

人生苦短 我用python

好久不见啦~这次就来给大家整个大福利 ~

源码资料电子书:点击此处跳转文末名片获取

最简单的9行代码音乐播放器如下:

import time
import pygamefile = r'歌曲路径'
pygame.mixer.init()
print('正在播放',file)
track = pygame.mixer.music.load(file)
pygame.mixer.music.play()
time.sleep(130)
pygame.mixer.music.stop()

请添加图片描述

但是我不会满足哒~大家也不会满足的对吧 ~ ~ ~

所以给大家准备了有界面的音乐播放器

知识点 + 所需模块

1.python基础知识
2.requests库
3.time
4.pygame
5.tkinter
6.线程

环境

  • windows
  • pycharm 2021.2
  • python 3.8

完整代码,运行即可,记得三连👍👍👍

(直接明示了)

import os
import time
import tkinter
import tkinter.filedialog
import threading
import pygame  root = tkinter.Tk()
root.title('音乐播放器')
root.geometry('460x600+500+100')
root.resizable(False,False) folder =''
res = []
num = 0
now_music = ''def buttonChooseClick():"""添加文件夹:return:"""global folderglobal resif not folder:folder = tkinter.filedialog.askdirectory()musics = [folder + '\\' + musicfor music in os.listdir(folder) \
\if music.endswith(('.mp3','.wav','.ogg'))]ret = []for i in musics:ret.append(i.split('\\')[1:])res.append(i.replace('\\','/'))var2 = tkinter.StringVar()var2.set(ret)lb = tkinter.Listbox(root,listvariable=var2)lb.place(x=50,y=100,width=260,height=300)if not folder:returnglobal playingplaying = TruebuttonPlay['state'] = 'normal'buttonStop['state'] = 'normal'# python学习交流裙:660193417#pause_resume.set('播放')def play():"""播放音乐:return:"""if len(res):pygame.mixer.init()global numwhile playing:if not pygame.mixer.music.get_busy():netxMusic = res[num]print(netxMusic)print(num)pygame.mixer.music.load(netxMusic.encode())pygame.mixer.music.play(1)if len(res) -1 == num:num = 0else:num = num + 1netxMusic = netxMusic.split('\\')[1:]musicName.set('playing......' + ''.join(netxMusic))def buttonPlayClick():"""点击播放:return:"""buttonNext['state'] = 'normal'if pause_resume.get() == '播放':pause_resume.set('暂停')global folderif not folder:folder = tkinter.filedialog.askdirectory()if not folder:returnglobal playingplaying = Truet = threading.Thread(target=play)t.start()elif pause_resume.get() == '暂停':pygame.mixer.music.pause()pause_resume.set('继续')elif pause_resume.get() == '继续':pygame.mixer.music.unpause()pause_resume.set('暂停')def buttonStopClick():"""停止播放:return:"""global playingplaying = Falsepygame.mixer.music.stop()def buttonNextClick():"""下一首:return:"""global playingplaying = Falsepygame.mixer.music.stop()global numif len(res) == num:num = 0playing = Truet = threading.Thread(target=play)t.start()def closeWindow():"""关闭窗口:return:"""global playingplaying = Falsetime.sleep(0.3)try:pygame.mixer.music.stop()pygame.mixer.quit()except:passroot.destroy()def control_voice(value=0.5):"""声音控制:param value: 0.0-1.0:return:"""pygame.mixer.music.set_volume(float(value))def buttonPrevClick():"""上一首:return:"""global playingplaying = Falsepygame.mixer.music.stop()global numif num == 0:num = len(res) - 2elif num == len(res) - 1:num -= 2else:num -= 2print(num)playing = Truet = threading.Thread(target=play)t.start()root.protocol('WM_DELETE_WINDOW', closeWindow)buttonChoose = tkinter.Button(root,text='添加',command=buttonChooseClick)buttonChoose.place(x=50,y=10,width=50,height=20)pause_resume = tkinter.StringVar(root,value='播放')
buttonPlay = tkinter.Button(root,textvariable=pause_resume,command=buttonPlayClick)
buttonPlay.place(x=190,y=10,width=50,height=20)
buttonPlay['state'] = 'disabled'buttonStop = tkinter.Button(root, text='停止',command=buttonStopClick)
buttonStop.place(x=120, y=10, width=50, height=20)
buttonStop['state'] = 'disabled'buttonNext = tkinter.Button(root, text='下一首',command=buttonNextClick)
buttonNext.place(x=260, y=10, width=50, height=20)
buttonNext['state'] = 'disabled'
buttonPrev = tkinter.Button(root, text='上一首',command=buttonPrevClick)
buttonPrev.place(x=330, y=10, width=50, height=20)
buttonPrev['state'] = 'disabled'musicName = tkinter.StringVar(root, value='暂时没有播放音乐...')
labelName = tkinter.Label(root, textvariable=musicName)
labelName.place(x=10, y=30, width=260, height=20)s = tkinter.Scale(root, label='音量', from_=0, to=1, orient=tkinter.HORIZONTAL,length=240, showvalue=0, tickinterval=2, resolution=0.1,command=control_voice)
s.place(x=50, y=50, width=200)root.mainloop()

效果展示

简易版的

在这里插入图片描述

半成品,代码没写完(诶嘿我懒)

在这里插入图片描述

👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇

相关内容

热门资讯

中创股份:变更募集资金投资项目... 新京报贝壳财经讯 12月15日,中创股份公告,公司于2025年12月15日召开第七届董事会第十三次会...
国投丰乐:向特定对象发行股票的... 新京报贝壳财经讯 12月15日,国投丰乐公告,公司于近日收到中国证券监督管理委员会出具的《关于同意国...
百纳千成:筹划购买厦门众联世纪... 新京报贝壳财经讯 12月15日,百纳千成公告,公司正在筹划发行股份及支付现金购买厦门众联世纪股份有限...
债基“熄火”!中长期纯债基金成... 债基今年大面积“熄火”。在业绩表现上,截至12月12日,Wind数据显示,7585只债券型基金(不同...
穿越无人区:中国电力的西进往事... 本文来自微信公众号:郭大路的思考笔记,作者:郭大路,头图来自:AI生成1997年,长江西陵峡。举世瞩...
尤峥辞任赛力斯非执行董事 新京报贝壳财经讯(记者王琳琳)12月15日,新京报贝壳财经记者从赛力斯获悉,赛力斯近期先后收到股东东...
SpaceX或2026年IPO... 当地时间12月14日,据消息人士透露,美国太空探索技术公司SpaceX正加快推进潜在首次公开募股(I...
张勇:共促五链融合,同启“绿色... 12月14日下午,由人民日报社《国际金融报》与上海财经大学习近平经济思想研究院联合主办、中国建设银行...
绿谷医药的接盘方出现了!复星医... 因阿尔茨海默病(AD)药物“九期一”注册证到期而陷入停产的绿谷(上海)医药科技有限公司(“绿谷医药”...
柯南AI获数百万元天使+轮融资... 11月11日消息,柯南(广东横琴)智能科技有限公司完成数百万元天使+轮融资,投资方为太和资本,华峰资...