侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

python3音乐播放器简单实现代码

Python  /  管理员 发布于 7年前   444

本文实例为大家分享了python3音乐播放器的关键代码,供大家参考,具体内容如下

from tkinter import *from traceback import *from win32com.client import Dispatchimport time,eyed3,threading name = [] def openfile(index = [1]):  global total,name     filenames = filedialog.askopenfilenames(title = "音乐播放器",filetypes =[("mp3文件","*.mp3"),("WMA文件","*.wma"),("WAV文件","*.wav")])  if filenames:    for i in range(len(filenames)):      media = wmp.newMedia(filenames[i])      wmp.currentPlaylist.appendItem(media)           print(filenames[i])           coco = eyed3.load(filenames[i])#eyed3模块读取mp3信息      total = int(coco.info.time_secs)      minute = int(coco.info.time_secs)//60      sec = int(coco.info.time_secs)%60      length = int(coco.info.time_secs)           name = filenames[i].split("/")           i =index[-1]      list_name.insert(END,str(i)+"."+name[-1])      list_name.insert(END," "*6)      if sec >=10:        list_name.insert(END,"0%d:%d" %(minute,sec)+ "\n")      else:        list_name.insert(END,"0%s:0%d" %(minute,sec)+ "\n")      i = i +1      index.append(i)def play(event = None):  #root.title("%s" % name[-1]),使用wmp.currentMedia.name更好,在per函数中  per_thread = threading.Thread(target = per)  per_thread.daemnon = True  wmp.controls.play()  per_thread.start()  #print(wmp.currentMedia.duration)#放到暂停那里居然可以用,而这里不行     def per():  global total  while wmp.playState !=1:    progress_scal.set(int(wmp.controls.currentPosition))    progress_scal.config(label = wmp.controls.currentPositionString)    progress_scal.config(to = total,tickinterval = 50)    time.sleep(1)    root.title("%s" % wmp.currentMedia.name)   def stop():  wmp.controls.stop()def pause(event = None):  wmp.controls.pause() def uselist():    passdef fullscr():    passdef exitit():  root.destroy()def Previous_it():  wmp.controls.previous()def Next_it():  wmp.controls.next()def Volume_ctr(none):  wmp.settings.Volume = vio_scale.get()def Volume_add(i=[0]):  wmp.settings.Volume =wmp.settings.Volume+5  i.append(wmp.settings.Volume)  vio_scale.set(wmp.settings.Volume)def Volume_minus(i=[0]):  wmp.settings.Volume = wmp.settings.Volume -5  i.append(wmp.settings.Volume)  vio_scale.set(wmp.settings.Volume)def Scale_ctr(none):   wmp.controls.currentPosition = var_scale.get()  print(wmp.currentMedia.duration)def Clear_list():  wmp.currentPlaylist.clear()  list_name.delete(1.0,END)  name = []  index = []def List_random():  wmp.settings.setMode("shuffle",True)  play()def List_loop():  wmp.settings.setMode("loop",True)  play()   root =Tk()wmp = Dispatch("WMPlayer.OCX") canvas = Canvas(root,width =150,height = 100,bg = "blue")filename = PhotoImage(file = "girl.gif")image =canvas.create_image((0,0),image = filename)canvas.place(x=0,y=0)canvas.coords(image,79,50)canvas.grid(row =0,column = 0,sticky = "nw",rowspan =2)  progress_lab = LabelFrame(root,text = "播放进度")progress_lab.grid(row =2,column =0,sticky = "we",rowspan = 2)var_scale = DoubleVar()progress_scal = Scale(progress_lab,orient = HORIZONTAL,showvalue = 0,length =180,variable = var_scale)#progress_scal.bind("<Button-1>",pause)#progress_scal.bind("")#progress_scal.bind("<ButtonRelease-1>",play)progress_scal.grid(row =3,column =0) modee_lab = LabelFrame(root,text = "播放模式")modee_lab.grid(row =4,column =0,rowspan =4,sticky = "ws")var_mode = IntVar()randomradio = Radiobutton(modee_lab,variable = var_mode,value = 1,text ="随机播放",command =List_random )randomradio.grid(row =4,column =2)inturnradio = Radiobutton(modee_lab,variable = var_mode,value =2,text= "顺序播放",command = play)inturnradio.grid(row=4,column =3)alloop = Radiobutton(modee_lab,variable = var_mode,value =2,text = "全部循环播放",command = List_loop)alloop.grid(row =5,column = 2)sinloop = Radiobutton(modee_lab,variable = var_mode,value =3,text = "单曲循环播放")sinloop.grid(row =5,column =3)previous_play = Button(modee_lab,text = "上一曲",height =1,command = Previous_it)previous_play.grid(row =6,column =2,rowspan =2,pady =5)next_play = Button(modee_lab,text = "下一曲",height =1,command = Next_it)next_play.grid(row =6,column =3,rowspan =2,pady =5) var_volume = IntVar()vioce_lab = LabelFrame(root,text = "音量控制")vioce_lab.grid(row =8,column =0,sticky = "wes")vio_scale = Scale(vioce_lab,orient = HORIZONTAL,length =170,variable = var_volume,command =Volume_ctr)vio_scale.set(30)vio_scale.grid(row =8,column =0)vio_plus = Button(vioce_lab,width =8,text = "增加音量+",command =Volume_add)vio_plus.grid(row =9,column =0,sticky = "w")vio_minus = Button(vioce_lab,width =8,text ="减少音量-",command = Volume_minus)vio_minus.grid(row =9,column =0,sticky ="e") ctr_lab = LabelFrame(root,text = "播放控制",height =130)ctr_lab.grid(row =0,column =1,rowspan =12,sticky = "ns")btn_open = Button(ctr_lab,text ="打开音乐文件",width =10,command = openfile)btn_open.grid(row=0,column =1)btn_play = Button(ctr_lab,text ="播放",width =10,command = play)btn_play.grid(row =1,column =1,pady =5)btn_stop = Button(ctr_lab,text ="停止",width =10,command = stop)btn_stop.grid(row =2,column =1,pady =5)btn_pause = Button(ctr_lab,text ="暂停",width =10,command = pause)btn_pause.grid(row =3,column =1,pady =5) btn_playlist = Button(ctr_lab,text ="新建播放列表",width =10,command = uselist)btn_playlist.grid(row =4,column =1,pady =5)  listimport = Button(ctr_lab,width =10,text = "导入列表")listimport.grid(row =6,column =1,sticky ="nw",pady =5)listexport = Button(ctr_lab,width =10,text = "导出列表")listexport.grid(row =7,column =1,sticky = "nw",pady =5)listdel_all = Button(ctr_lab,width =10,text = "清空列表",command = Clear_list)listdel_all.grid(row =8,column =1,sticky ="nw",pady =5)listdel_sel= Button(ctr_lab,width =10,text = "删除歌曲")listdel_sel.grid(row =12,column =1,sticky = "nw",pady =5)savelist_btn = Button(ctr_lab,text = "保存为列表")savelist_btn.grid(row=9,column =1)min_btn = Button(ctr_lab,text = "最小化窗口",command = root.iconify)min_btn.grid(row =13,column =1) time_lab= Label(root,width =20,height =2,text ="现在时间为:")time_lab.grid(row =12,column =0,sticky = "nw",pady =5)time_text= Text(root,width =30,height =3,foreground ="green")time_text.grid(row =10,column =0,sticky = "nw",pady =5) list_name = Text(root,height =18,width =110)list_name.grid(row =0,column =2,sticky = "n",rowspan =6)  root.mainloop()

以上就是本文的全部内容,希望对大家学习python程序设计有所帮助。

您可能感兴趣的文章:

  • python实现音乐播放器 python实现花框音乐盒子
  • python3 写一个WAV音频文件播放器的代码
  • python实现媒体播放器功能
  • Python实现的视频播放器功能完整示例
  • python使用Tkinter实现在线音乐播放器
  • python实现简易云音乐播放器
  • Python实现在线音乐播放器
  • python开发简易版在线音乐播放器
  • Python应用03 使用PyQT制作视频播放器实例
  • python实现可下载音乐的音乐播放器


  • 上一条:
    python基础教程之分支、循环简单用法
    下一条:
    深入解析Python中的descriptor描述器的作用及用法
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在python语言中Flask框架的学习及简单功能示例(0个评论)
    • 在Python语言中实现GUI全屏倒计时代码示例(0个评论)
    • Python + zipfile库实现zip文件解压自动化脚本示例(0个评论)
    • python爬虫BeautifulSoup快速抓取网站图片(1个评论)
    • vscode 配置 python3开发环境的方法(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2018-04
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2022-01
    • 2023-07
    • 2023-10
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客