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 ORM框架SQLAlchemy学习笔记之安装和简单查询实例
Jun 10 Python
使用graphics.py实现2048小游戏
Mar 10 Python
python实现数独算法实例
Jun 09 Python
Python实现爬取逐浪小说的方法
Jul 07 Python
Python 比较两个数组的元素的异同方法
Aug 17 Python
Python通过调用有道翻译api实现翻译功能示例
Jul 19 Python
python图形工具turtle绘制国际象棋棋盘
May 23 Python
python itchat给指定联系人发消息的方法
Jun 11 Python
Django模型序列化返回自然主键值示例代码
Jun 12 Python
python代码编写计算器小程序
Mar 30 Python
修改 CentOS 6.x 上默认Python的方法
Sep 06 Python
Django中Aggregation聚合的基本使用方法
Jul 09 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
蝙蝠侠:侠影之谜
2020/03/04 欧美动漫
PHP使用pear自带的mail类库发邮件的方法
2015/07/08 PHP
PHP设计模式之装饰器模式定义与用法详解
2018/04/02 PHP
JavaScript Base64编码和解码,实现URL参数传递。
2006/09/18 Javascript
基于jquery的防止大图片撑破页面的实现代码(立即缩放)
2011/10/24 Javascript
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
jQuery实现可高亮显示的二级CSS菜单效果
2015/09/01 Javascript
浅谈js中调用函数时加不加括号的问题
2016/07/28 Javascript
微信小程序 SocketIO 实例讲解
2016/10/13 Javascript
JavaScript面试题(指针、帽子和女朋友)
2016/11/23 Javascript
详解nodejs 文本操作模块-fs模块(四)
2016/12/22 NodeJs
javascript history对象详解
2017/02/09 Javascript
简单实现js进度条加载效果
2020/03/25 Javascript
Angular中支持SCSS的方法
2017/11/18 Javascript
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
使用JS代码实现俄罗斯方块游戏
2018/08/03 Javascript
js实现ATM机存取款功能
2020/10/27 Javascript
学习RxJS之JavaScript框架Cycle.js
2019/06/17 Javascript
详解Vue 换肤方案验证
2019/08/28 Javascript
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
2020/09/18 Javascript
利用 JavaScript 实现并发控制的示例代码
2020/12/31 Javascript
[47:12]TFT vs Secret Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
Python实现分割文件及合并文件的方法
2015/07/10 Python
在Python的Django框架中创建语言文件
2015/07/27 Python
对web.py设置favicon.ico的方法详解
2018/12/04 Python
利用Python实现kNN算法的代码
2019/08/16 Python
Python 转换文本编码实现解析
2019/08/27 Python
Django视图类型总结
2021/02/17 Python
世界上最全面的草药补充剂和顶级品牌维生素网站:HerbsPro
2019/01/20 全球购物
绝对经典成功的大学生推荐信
2013/11/08 职场文书
难忘的一课教学反思
2014/04/30 职场文书
收款委托书
2014/10/14 职场文书
优秀党员先进事迹材料
2014/12/18 职场文书
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS
win10频率超出范围怎么办?win10老显示超出工作频率范围的解决方法
2022/07/07 数码科技