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类方法与对象方法
Mar 15 Python
浅谈Python的垃圾回收机制
Dec 17 Python
tensorflow更改变量的值实例
Jul 30 Python
Pytorch根据layers的name冻结训练方式
Jan 06 Python
使用PyTorch实现MNIST手写体识别代码
Jan 18 Python
Python识别html主要文本框过程解析
Feb 18 Python
Python pip 常用命令汇总
Oct 19 Python
安装Anaconda3及使用Jupyter的方法
Oct 27 Python
selenium+超级鹰实现模拟登录12306
Jan 24 Python
Django利用AJAX技术实现博文实时搜索
May 06 Python
Python爬虫基础讲解之请求
May 13 Python
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
Apr 20 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
关于页面优化和伪静态
2009/10/11 PHP
php利用cookie实现访问次数统计代码
2011/05/19 PHP
php中ob_get_length缓冲与获取缓冲长度实例
2014/11/20 PHP
Yii核心组件AssetManager原理分析
2014/12/02 PHP
php输出金字塔的2种实现方法
2014/12/16 PHP
php修改文件上传限制方法汇总
2015/04/07 PHP
理解Javascript_01_理解内存分配原理分析
2010/10/11 Javascript
js 判断计算字符串长度/判断空的简单方法
2013/08/05 Javascript
js数组操作学习总结
2013/11/04 Javascript
jQuery插件zoom实现图片全屏放大弹出层特效
2015/04/15 Javascript
JS折半插入排序算法实例
2015/12/02 Javascript
JQuery中Ajax()的data参数类型实例分析
2015/12/15 Javascript
谈谈jQuery之Deferred源码剖析
2016/12/19 Javascript
js获取元素下的第一级子元素的方法(推荐)
2017/03/05 Javascript
深入理解Node module模块
2018/03/26 Javascript
浅谈Vue服务端渲染框架Nuxt的那些事
2018/12/21 Javascript
Vue 动态组件与 v-once 指令的实现
2019/02/12 Javascript
原生Vue 实现右键菜单组件功能
2019/12/16 Javascript
基于Python的身份证号码自动生成程序
2014/08/15 Python
python爬取内容存入Excel实例
2019/02/20 Python
jupyter notebook 中输出pyecharts图实例
2020/04/23 Python
Python读取实时数据流示例
2019/12/02 Python
在django admin详情表单显示中添加自定义控件的实现
2020/03/11 Python
python实现126邮箱发送邮件
2020/05/20 Python
python获取本周、上周、本月、上月及本季的时间代码实例
2020/09/08 Python
webView加载html图片遇到的问题解决
2019/10/08 HTML / CSS
荷兰和比利时时尚鞋店:Van Dalen
2018/04/23 全球购物
MATCHESFASHION澳大利亚/亚太地区:英国时尚奢侈品电商
2020/01/14 全球购物
在求职信中如何凸显个人优势
2013/10/30 职场文书
理工大学毕业生自荐信
2013/11/01 职场文书
优秀党员推荐材料
2014/12/18 职场文书
接触艺术对孩子学习思维有益
2019/08/06 职场文书
Python OpenCV 彩色与灰度图像的转换实现
2021/06/05 Python
C3 线性化算法与 MRO之Python中的多继承
2021/10/05 Python
通过T-SQL语句创建游标与实现数据库加解密功能
2022/03/16 SQL Server
hive数据仓库新增字段方法
2022/06/25 数据库