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函数返回多个值的示例方法
Dec 04 Python
Python中使用PyHook监听鼠标和键盘事件实例
Jul 18 Python
详解Python的迭代器、生成器以及相关的itertools包
Apr 02 Python
Python实现的简单文件传输服务器和客户端
Apr 08 Python
python通过ftplib登录到ftp服务器的方法
May 08 Python
Ubuntu 下 vim 搭建python 环境 配置
Jun 12 Python
python 3.6 tkinter+urllib+json实现火车车次信息查询功能
Dec 20 Python
Python操作mongodb数据库的方法详解
Dec 08 Python
Python图像处理之颜色的定义与使用分析
Jan 03 Python
selenium+Chrome滑动验证码破解二(某某网站)
Dec 17 Python
Python中os模块的简单使用及重命名操作
Apr 17 Python
利用Python判断整数是否是回文数的3种方法总结
Jul 07 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实现的仿阿里巴巴实现同类产品翻页
2009/12/11 PHP
PHP编程实现计算抽奖概率算法完整实例
2017/08/09 PHP
利用php + Laravel如何实现部署自动化详解
2017/10/11 PHP
js日历功能对象
2012/01/12 Javascript
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
2014/08/30 Javascript
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
jqueryUI里拖拽排序示例分析
2015/02/26 Javascript
Javascript优化技巧之短路表达式详细介绍
2015/03/27 Javascript
jQuery插件zoom实现图片全屏放大弹出层特效
2015/04/15 Javascript
JS根据生日算年龄的方法
2015/05/05 Javascript
js从外部获取图片的实现方法
2016/08/05 Javascript
Vue学习笔记进阶篇之多元素及多组件过渡
2017/07/19 Javascript
Vue 项目分环境打包的方法示例
2018/08/03 Javascript
使用koa2创建web项目的方法步骤
2019/03/12 Javascript
angular 服务随记小结
2019/05/06 Javascript
vue里的data要用return返回的原因浅析
2019/05/28 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
Vue实现push数组并删除的例子
2019/11/01 Javascript
js+canvas实现纸牌游戏
2020/03/16 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
vue使用require.context实现动态注册路由
2020/12/25 Vue.js
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
Python中文编码那些事
2014/06/25 Python
python统计一个文本中重复行数的方法
2014/11/19 Python
Windows下安装python MySQLdb遇到的问题及解决方法
2017/03/16 Python
python 生成器和迭代器的原理解析
2019/10/12 Python
Python 实现自动导入缺失的库
2019/10/29 Python
Django REST framework 单元测试实例解析
2019/11/07 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
2020/01/14 Python
玉兰油美国官网:OLAY美国
2018/10/25 全球购物
会计电算化应届生求职信
2013/11/03 职场文书
资产经营总监岗位职责
2013/12/04 职场文书
会计自我鉴定
2014/02/04 职场文书
2014年办公室工作总结范文
2014/11/12 职场文书
Golang Gob编码(gob包的使用详解)
2021/05/07 Golang
php png失真的原因及解决办法
2021/10/24 PHP