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自动连接ssh的方法
Mar 07 Python
深入理解Python装饰器
Jul 27 Python
谈谈如何手动释放Python的内存
Dec 17 Python
利用python获取Ping结果示例代码
Jul 06 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
Nov 14 Python
Python批量提取PDF文件中文本的脚本
Mar 14 Python
用python简单实现mysql数据同步到ElasticSearch的教程
May 30 Python
对pandas数据判断是否为NaN值的方法详解
Nov 06 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
Dec 24 Python
使用Python实现批量ping操作方法
May 06 Python
最简单的matplotlib安装教程(小白)
Jul 28 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
Oct 12 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 编写的日历
2006/10/09 PHP
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
php提示undefined index的几种解决方法
2012/05/21 PHP
ThinkPHP3.1新特性之G方法的使用
2014/06/19 PHP
一个轻量级的javascript库 pj介绍
2010/12/19 Javascript
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
2012/12/12 Javascript
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
2013/09/16 Javascript
深入理解Javascript中的循环优化
2013/11/09 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
2013/11/19 Javascript
js函数内变量的作用域分析
2015/01/12 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
2016/05/28 Javascript
jQuery实现区域打印功能代码详解
2016/06/17 Javascript
JS判断一个数是否是水仙花数
2017/06/11 Javascript
微信小程序实现手指触摸画板
2018/07/09 Javascript
Vue结合后台导入导出Excel问题详解
2019/02/19 Javascript
微信小程序整合使用富文本编辑器的方法详解
2019/04/25 Javascript
Vue 实现前进刷新后退不刷新的效果
2019/06/14 Javascript
超轻量级的js时间库miment使用解析
2019/08/02 Javascript
vue.js实现只能输入数字的输入框
2019/10/19 Javascript
JavaScript实现Tab标签页切换的最简便方式(4种)
2020/06/28 Javascript
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
详解Django中间件执行顺序
2018/07/16 Python
用python 实现在不确定行数情况下多行输入方法
2019/01/28 Python
Fnac西班牙官网:法国文化和电子产品零售商
2021/03/14 全球购物
创业计划书中包含的9个方面
2013/12/26 职场文书
技校个人求职信范文
2014/01/25 职场文书
对外汉语专业大学生职业生涯规划范文
2014/09/13 职场文书
领导干部遵守党的政治纪律情况思想汇报
2014/09/14 职场文书
给客户的感谢信
2015/01/21 职场文书
管辖权异议上诉状
2015/05/23 职场文书
小学见习报告
2015/06/23 职场文书
会计专业自荐信范文
2019/05/22 职场文书
Spring Boot 排除某个类加载注入IOC的操作
2021/08/02 Java/Android
详解Golang如何优雅的终止一个服务
2022/03/21 Golang
Vue深入理解插槽slot的使用
2022/08/05 Vue.js