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


Posted in Python onFebruary 25, 2020

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

"""这是一个用海龟画图模块和pygame的混音模块制作的简易播放器。
作者:李兴球,日期:2018/8/26"""
 
from turtle import *
 
def init_screen():
 """初始化屏幕"""
 screen = Screen()
 screen.setup(width,height)
 screen.bgpic("舞台.png")
 screen.title(gametitle)
 screen.delay(0)
 return screen
 
def init_mixer():
 """初始化混音器,注意在函数内部导入的模块的作用范围"""
 have_pygame = False
 try:
 import pygame
 pygame.mixer.init()
 have_pygame = True
 except:
 pygame = None
 return have_pygame ,pygame
 
class Button(Turtle):
 """按钮类,每个按钮有两张图片,自带音乐"""
 
 def __init__(self,costume_list,x,y,music,width,height):
 Turtle.__init__(self,visible=False)
 self.penup()
 self.costume_list = costume_list # 造型列表
 self.costume_index = 0  # 造型初始索引号
 self.shape(self.costume_list[self.costume_index]) # 设置造型为索引为0的图
 self.goto(x,y)
 self.width = width
 self.height = height
 self.left = x - width/2 # 左边x坐标
 self.right = x + width/2 # 右边x坐标
 self.top = y + height/2 # 上边y坐标
 self.bottom = y - height/2 # 下边y坐标
 self.music = music  
 self.showturtle()
 self.onclick(self.play) # 单击按钮调用play方法
 
 def play(self,x,y):
 """先停止音乐再播放音乐"""
 pygame.mixer.music.stop()  # 停止正在播放的音乐
 pygame.mixer.music.load(self.music)
 screen.title(gametitle + ",正在播放:" + self.music)
 pygame.mixer.music.play(-1,0) # -1表示循环播放,0表示从头开始播放
 
 def onmousemove(self,event):
 """判断鼠标指针是否在按钮坐标范围内"""
 pass
 
def make_button():
 """加载资源,生成播放按钮"""
 c1_list = ("Losing_Sleep0.gif","Losing_Sleep1.gif")
 [screen.addshape(image) for image in c1_list]
 music1 = "Alan Walker - Losing Sleep.mp3"
 b1 = Button(c1_list,-250,0,music1,200,150)
 screen.cv.bind("<Motion>",b1.onmousemove,add=True)
 
 c2_list = ("和兰花在一起0.gif","和兰花在一起1.gif")
 [screen.addshape(image) for image in c2_list]
 music2 = "Yanni - With An Orchid.mp3"
 b2 = Button(c2_list,00,0,music2,200,150)
 screen.cv.bind("<Motion>",b2.onmousemove,add=True)
 
 c3_list = ("Faded0.gif","Faded1.gif")
 [screen.addshape(image) for image in c3_list]
 music3 = "Alan Walker - Faded (纯音乐).wav"
 b3 = Button(c3_list,250,0,music3,200,150)
 screen.cv.bind("<Motion>",b3.onmousemove,add=True)
 
 c4_list = ("兰贵人0.gif","兰贵人1.gif")
 [screen.addshape(image) for image in c4_list]
 music4 = "胡伟立-兰贵人.mp3"
 b4 = Button(c4_list,-250,-200,music4,200,150)
 screen.cv.bind("<Motion>",b4.onmousemove,add=True)
 
 c5_list = ("Spectre0.gif","Spectre1.gif")
 [screen.addshape(image) for image in c5_list]
 music5 = "Alan Walker - Spectre.mp3"
 b5 = Button(c5_list,0,-200,music5,200,150)
 screen.cv.bind("<Motion>",b5.onmousemove,add=True)
 
 c6_list = ("新古典主义0.gif","新古典主义1.gif")
 [screen.addshape(image) for image in c6_list]
 music6 = "新古典主义-组曲.mp3"
 b6 = Button(c6_list,250,-200,music6,200,150)
 screen.cv.bind("<Motion>",b6.onmousemove,add=True)
 
 
if __name__ == "__main__":
 
 gametitle = "花框音乐盒"
 width,height = 800,600
 screen = init_screen()
 mixer_success,pygame = init_mixer()
 if mixer_success:
 print("成功初始化混音器。")
 else:
 print("初始化混音器出现问题。")
 make_button()
 screen.mainloop()

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python常用列表数据结构小结
Aug 06 Python
Python利用pyHook实现监听用户鼠标与键盘事件
Aug 21 Python
Python3.x版本中新的字符串格式化方法
Apr 24 Python
python实现将pvr格式转换成pvr.ccz的方法
Apr 28 Python
Django框架中处理URLconf中特定的URL的方法
Jul 20 Python
Python实现遍历目录的方法【测试可用】
Mar 22 Python
Python装饰器原理与简单用法实例分析
Apr 29 Python
使用python serial 获取所有的串口名称的实例
Jul 02 Python
Django中使用CORS实现跨域请求过程解析
Aug 05 Python
基于python修改srt字幕的时间轴
Feb 03 Python
Python threading模块condition原理及运行流程详解
Oct 05 Python
Python如何配置环境变量详解
May 18 Python
python+selenium+PhantomJS抓取网页动态加载内容
Feb 25 #Python
python numpy生成等差数列、等比数列的实例
Feb 25 #Python
信号生成及DFT的python实现方式
Feb 25 #Python
Pycharm远程连接服务器并实现代码同步上传更新功能
Feb 25 #Python
python生成任意频率正弦波方式
Feb 25 #Python
python numpy库linspace相同间隔采样的实现
Feb 25 #Python
Pandas时间序列:时期(period)及其算术运算详解
Feb 25 #Python
You might like
php解压文件代码实现php在线解压
2014/02/13 PHP
yii数据库的查询方法
2015/12/28 PHP
PHP函数nl2br()与自定义函数nl2p()换行用法分析
2016/04/02 PHP
IE6图片加载的一个BUG解决方法
2010/07/13 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
2013/09/02 Javascript
禁止空格提交表单的js代码
2013/11/17 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表
2015/08/26 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
2016/06/12 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
2017/01/04 Javascript
详解javascript立即执行函数表达式IIFE
2017/02/13 Javascript
seajs中最常用的7个功能、配置示例
2017/10/10 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
2017/10/18 Javascript
Angular网络请求的封装方法
2018/05/22 Javascript
vue定义全局变量和全局方法的方法示例
2018/08/01 Javascript
webpack 静态资源集中输出的方法示例
2018/11/09 Javascript
vue中axios请求的封装实例代码
2019/03/23 Javascript
微信小程序 wepy框架与iview-weapp的用法详解
2019/04/10 Javascript
JavaScript键盘事件响应顺序详解
2019/09/30 Javascript
Python与Redis的连接教程
2015/04/22 Python
对python内置map和six.moves.map的区别详解
2018/12/19 Python
Django REST Framework之频率限制的使用
2019/09/29 Python
python目标检测给图画框,bbox画到图上并保存案例
2020/03/10 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
Python3爬虫mitmproxy的安装步骤
2020/07/29 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
2020/12/17 Python
详解Python调用系统命令的六种方法
2021/01/28 Python
详解Canvas 实现炫丽的粒子运动效果(粒子生成文字)
2018/02/01 HTML / CSS
父母寄语大全
2014/04/12 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
绿里奇迹观后感
2015/06/15 职场文书
选调生挂职锻炼工作总结
2015/10/23 职场文书
十个Python自动化常用操作,即拿即用
2021/05/10 Python
Vue Element UI自定义描述列表组件
2021/05/18 Vue.js
MySQL导致索引失效的几种情况
2022/06/25 MySQL