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 isinstance判断对象类型
Sep 06 Python
python开发之str.format()用法实例分析
Feb 22 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
Sep 13 Python
Python3.4 splinter(模拟填写表单)使用方法
Oct 13 Python
详解python tkinter教程-事件绑定
Mar 28 Python
python将字符串list写入excel和txt的实例
Jul 20 Python
Python+OpenCV实现实时眼动追踪的示例代码
Nov 11 Python
python修改linux中文件(文件夹)的权限属性操作
Mar 05 Python
python应用Axes3D绘图(批量梯度下降算法)
Mar 25 Python
Python字符串对齐方法使用(ljust()、rjust()和center())
Apr 26 Python
Python中Cookies导出某站用户数据的方法
May 17 Python
教你使用pyinstaller打包Python教程
May 27 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
德劲1103的维修打理经验
2021/03/02 无线电
Laravel如何使用数据库事务及捕获事务失败后的异常详解
2017/10/23 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
限制复选框的最大可选数
2006/07/01 Javascript
jquery 最简单的属性菜单
2009/10/08 Javascript
javascript qq右下角滑出窗口 sheyMsg
2010/03/21 Javascript
Javascript 去除数组的重复元素
2010/05/04 Javascript
JavaScript操作cookie类实例
2015/03/31 Javascript
jquery实现简单的自动播放幻灯片效果
2015/06/13 Javascript
javascript实现类似于新浪微博搜索框弹出效果的方法
2015/07/27 Javascript
javascript发送短信验证码实现代码
2015/11/12 Javascript
javascript拖拽应用实例
2016/03/25 Javascript
纯JS实现图片验证码功能并兼容IE6-8(推荐)
2017/04/19 Javascript
BootStrap 页签切换失效的解决方法
2017/08/17 Javascript
浅析vue深复制
2018/01/29 Javascript
express 项目分层实践详解
2018/12/10 Javascript
vue实现可视化可拖放的自定义表单的示例代码
2019/03/20 Javascript
浅谈JS的原型和继承
2019/05/08 Javascript
Openlayers学习之加载鹰眼控件
2020/09/28 Javascript
vue3为什么要用proxy替代defineProperty
2020/10/19 Javascript
[16:19]教你分分钟做大人——风暴之灵
2015/03/11 DOTA
[53:23]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
详解Python pygame安装过程笔记
2017/06/05 Python
Python使用当前时间、随机数产生一个唯一数字的方法
2017/09/18 Python
python实现决策树分类算法
2017/12/21 Python
python实现图像识别功能
2018/01/29 Python
如何通过安装HomeBrew来安装Python3
2020/12/23 Python
蔻驰意大利官网:COACH意大利
2019/01/16 全球购物
幼儿园优秀教师事迹
2014/02/13 职场文书
《花瓣飘香》教学反思
2014/04/15 职场文书
员工安全生产承诺书
2014/05/22 职场文书
邀请书格式范文
2015/02/02 职场文书
2016年党员承诺书范文
2016/03/24 职场文书
详解CSS开发过程中的20个快速提升技巧
2021/05/21 HTML / CSS
Go语言特点及基本数据类型使用详解
2022/03/21 Golang
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫