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实现bitmap数据结构详解
Feb 17 Python
python对html代码进行escape编码的方法
May 04 Python
Python编程中time模块的一些关键用法解析
Jan 19 Python
Python的Tornado框架实现异步非阻塞访问数据库的示例
Jun 30 Python
Python中enumerate()函数编写更Pythonic的循环
Mar 06 Python
scrapy-redis的安装部署步骤讲解
Feb 27 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
Jun 19 Python
Django 限制访问频率的思路详解
Dec 24 Python
Python OpenCV读取中文路径图像的方法
Jul 02 Python
Python Pivot table透视表使用方法解析
Sep 11 Python
如何用Python提取10000份log中的产品信息
Jan 14 Python
解决jupyter notebook图片显示模糊和保存清晰图片的操作
Apr 24 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
增加反向链接的101个方法 站长推荐
2007/01/31 PHP
php漏洞之跨网站请求伪造与防止伪造方法
2013/08/15 PHP
PHP ADODB生成下拉列表框功能示例
2018/05/29 PHP
Laravel 队列使用的实现
2019/01/08 PHP
最近项目写了一些js,水平有待提高
2009/01/31 Javascript
javascript 框架小结 个人工作经验
2009/06/13 Javascript
Grid得到选择行数据的方法总结
2011/01/17 Javascript
window.onresize 多次触发的解决方法
2013/11/08 Javascript
javascript中apply和call方法的作用及区别说明
2014/02/14 Javascript
jQuery操作Table技巧大汇总
2016/01/23 Javascript
jQuery轻松实现表格的隔行变色和点击行变色的实例代码
2016/05/09 Javascript
JS Canvas定时器模拟动态加载动画
2016/09/17 Javascript
js中作用域的实例解析
2017/03/16 Javascript
JavaScript 中调用 Kotlin 方法实例详解
2017/06/09 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
2017/10/20 jQuery
vue多页面开发和打包正确处理方法
2018/04/20 Javascript
通过GASP让vue实现动态效果实例代码详解
2019/11/24 Javascript
viewer.js实现图片预览功能
2020/06/24 Javascript
编写Python脚本抓取网络小说来制作自己的阅读器
2015/08/20 Python
使用Python的urllib2模块处理url和图片的技巧两则
2016/02/18 Python
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
Django基于ORM操作数据库的方法详解
2018/03/27 Python
django中静态文件配置static的方法
2018/05/20 Python
python 判断矩阵中每行非零个数的方法
2019/01/26 Python
python 搜索大文件的实例代码
2019/07/08 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
2020/05/25 Python
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
为女性购买传统的印度服装和婚纱:Kalkifashion
2019/07/22 全球购物
90后毕业生的求职信范文
2013/09/21 职场文书
《守株待兔》教学反思
2014/03/01 职场文书
法律进机关实施方案
2014/03/12 职场文书
吨的认识教学反思
2014/04/27 职场文书
表扬通报怎么写
2015/01/16 职场文书
英文自荐信范文
2015/03/25 职场文书
入党介绍人考察意见
2015/06/01 职场文书
python3使用diagrams绘制架构图的步骤
2021/04/08 Python