大连建设学校网站院长,git 网站开发应用,网站如何布局设计,本地运行wordpress前言
最近可以说大麦网很知名了#xff0c;哈哈还有好多想要用Python来搞抢票脚本的
怎么说呢也不是不行#xff0c;但是咱今天可不是来搞这个的#xff0c;我可不抢票#xff0c;抢了都去不了#xff0c;上班搞钱啊铁铁们
咱就是说去不了现场#xff0c;就多听听手机…前言
最近可以说大麦网很知名了哈哈还有好多想要用Python来搞抢票脚本的
怎么说呢也不是不行但是咱今天可不是来搞这个的我可不抢票抢了都去不了上班搞钱啊铁铁们
咱就是说去不了现场就多听听手机的歌吧有缘分怎样都可以见到的哈哈哈
今天来给你们表演一个用Python来做个音乐播放器 今天这个可不是最简单的最简单的音乐播放器只需要九行代码
完整代码文末名片获取
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()知识点和所需模块
python基础知识
requests库timepygametkinter线程
环境
windowspycharm 2021.2python 3.8
导入模块
import os
import time
import tkinter
import tkinter.filedialog
import threading
import pygame root tkinter.Tk()
root.title(音乐播放器)
root.geometry(460x600500100)
root.resizable(False,False) # 不能拉伸folder
res []
690643772 ### 源码领取
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,listvariablevar2)lb.place(x50,y100,width260,height300)if not folder:returnglobal playingplaying True# 根据情况禁用和启用相应的按钮buttonPlay[state] normalbuttonStop[state] normal# buttonPause[state] normalpause_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))else:time.sleep(0.1)点击播放
def buttonPlayClick():点击播放:return:buttonNext[state] normalbuttonPrev[state] normal选择要播放的音乐文件夹 if pause_resume.get() 播放:pause_resume.set(暂停)global folderif not folder:folder tkinter.filedialog.askdirectory()if not folder:returnglobal playingplaying True创建一个线程来播放音乐当前主线程用来接收用户操作 t threading.Thread(targetplay)t.start()elif pause_resume.get() 暂停:# pygame.mixer.init()pygame.mixer.music.pause()pause_resume.set(继续)elif pause_resume.get() 继续:# pygame.mixer.init()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 True# 创建线程播放音乐,主线程用来接收用户操作t threading.Thread(targetplay)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(value0.5):690643772 ### 源码领取声音控制:param value: 0.0-1.0:return:pygame.mixer.music.set_volume(float(value))def buttonPrevClick():上一首:return:global playingplaying Falsepygame.mixer.music.stop()## pygame.mixer.quit()global num# num 1# num - 1if num 0:num len(res) - 2# num - 1elif num len(res) - 1:num - 2else:num - 2# num - 1print(num)创建一个线程来播放音乐当前主线程用来接收用户操作 playing Truet threading.Thread(targetplay)t.start()窗口关闭
root.protocol(WM_DELETE_WINDOW, closeWindow)
添加按钮
buttonChoose tkinter.Button(root,text添加,commandbuttonChooseClick)布局
buttonChoose.place(x50,y10,width50,height20)
播放按钮
pause_resume tkinter.StringVar(root,value播放)
buttonPlay tkinter.Button(root,textvariablepause_resume,commandbuttonPlayClick)
buttonPlay.place(x190,y10,width50,height20)
buttonPlay[state] disabled停止按钮
buttonStop tkinter.Button(root, text停止,commandbuttonStopClick)
buttonStop.place(x120, y10, width50, height20)
buttonStop[state] disabled下一首
buttonNext tkinter.Button(root, text下一首,commandbuttonNextClick)
buttonNext.place(x260, y10, width50, height20)
buttonNext[state] disabled上一首
buttonPrev tkinter.Button(root, text上一首,commandbuttonPrevClick)
buttonPrev.place(x330, y10, width50, height20)
buttonPrev[state] disabled标签
musicName tkinter.StringVar(root, value暂时没有播放音乐...)
labelName tkinter.Label(root, textvariablemusicName)
labelName.place(x10, y30, width260, height20)音量控制
# HORIZONTAL表示为水平放置默认为竖直,竖直为vertical
s tkinter.Scale(root, label音量, from_0, to1, orienttkinter.HORIZONTAL,length240, showvalue0, tickinterval2, resolution0.1,commandcontrol_voice)
s.place(x50, y50, width200)# 显示
root.mainloop()效果展示
简易版的 还有个半成品的
目前代码没写完 导入模块
import os
import time
import tkinter
import tkinter.filedialog
import threading
import pygame 1.界面
root tkinter.Tk()
root.title(音乐播放器)
root.geometry(460x600500100)
root.resizable(False,False) # 不能拉伸# 显示
root.mainloop()2.按钮
# 添加按钮
buttonChoose tkinter.Button(root,text添加)
# 布局
buttonChoose.place(x50,y10,width50,height20)# 播放按钮
pause_resume tkinter.StringVar(root,value播放)
buttonPlay tkinter.Button(root,textvariablepause_resume)
buttonPlay.place(x190,y10,width50,height20)
buttonPlay[state] disabled# 停止按钮
buttonStop tkinter.Button(root, text停止)
buttonStop.place(x120, y10, width50, height20)
buttonStop[state] disabled# 下一首
buttonNext tkinter.Button(root, text下一首)
buttonNext.place(x260, y10, width50, height20)
buttonNext[state] disabled
# 上一首
buttonPrev tkinter.Button(root, text上一首)
buttonPrev.place(x330, y10, width50, height20)
buttonPrev[state] disabled# 标签
musicName tkinter.StringVar(root, value暂时没有播放音乐...)
labelName tkinter.Label(root, textvariablemusicName)
labelName.place(x10, y30, width260, height20)# 音量控制
# HORIZONTAL表示为水平放置默认为竖直,竖直为vertical
s tkinter.Scale(root, label音量, from_0, to1, orienttkinter.HORIZONTAL,length240, showvalue0, tickinterval2, resolution0.1)
s.place(x50, y50, width200)3.功能
创建一个文件目录
folder
res []
num 0
now_music 音乐读取功能
def buttonChooseClick():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(\\,/))if not folder:returnglobal playingplaying True# 根据情况禁用和启用相应的按钮buttonPlay[state] normalbuttonStop[state] normal# buttonPause[state] normalpause_resume.set(播放)
4.显示已加载的音乐
var2 tkinter.StringVar()
var2.set(ret)
lb tkinter.Listbox(root,listvariablevar2)
lb.place(x50,y100,width260,height300)5.播放音乐
def play():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))else:time.sleep(0.1)# 点击播放
def buttonPlayClick():buttonNext[state] normalbuttonPrev[state] normal# 选择要播放的音乐文件夹if pause_resume.get() 播放:pause_resume.set(暂停)global folderif not folder:folder tkinter.filedialog.askdirectory()if not folder:returnglobal playingplaying True# 创建一个线程来播放音乐当前主线程用来接收用户操作t threading.Thread(targetplay)t.start()elif pause_resume.get() 暂停:# pygame.mixer.init()pygame.mixer.music.pause()pause_resume.set(继续)elif pause_resume.get() 继续:# pygame.mixer.init()pygame.mixer.music.unpause()pause_resume.set(暂停)6.停止播放
def buttonStopClick():global playingplaying Falsepygame.mixer.music.stop()下一首
def buttonNextClick():global playingplaying Falsepygame.mixer.music.stop()global numif len(res) num:num 0playing True# 创建线程播放音乐,主线程用来接收用户操作t threading.Thread(targetplay)t.start()上一首
def buttonPrevClick():global playingplaying Falsepygame.mixer.music.stop()## pygame.mixer.quit()global num# num 1# num - 1if num 0:num len(res) - 2# num - 1elif num len(res) - 1:num - 2else:num - 2# num - 1print(num)playing True# 创建一个线程来播放音乐当前主线程用来接收用户操作t threading.Thread(targetplay)t.start()7.音量控制
def control_voice(value0.5):pygame.mixer.music.set_volume(float(value))8.关闭窗口
def closeWindow():# 修改变量结束线程中的循环global playingplaying Falsetime.sleep(0.3)try:# 停止播放如果已停止# 再次停止时会抛出异常所以放在异常处理结构中pygame.mixer.music.stop()pygame.mixer.quit()except:passroot.destroy()最后
好了分享到这里就结束了喜欢的话记得点赞哦