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中lambda的用法及其与def的区别解析
Jul 28 Python
Python计算回文数的方法
Mar 11 Python
浅谈编码,解码,乱码的问题
Dec 30 Python
Python程序运行原理图文解析
Feb 10 Python
教你使用python实现微信每天给女朋友说晚安
Mar 23 Python
pyspark操作MongoDB的方法步骤
Jan 04 Python
Python numpy中矩阵的基本用法汇总
Feb 12 Python
python输出决策树图形的例子
Aug 09 Python
django使用F方法更新一个对象多个对象字段的实现
Mar 28 Python
基于Python+QT的gui程序开发实现
Jul 03 Python
Python中super().__init__()测试以及理解
Dec 06 Python
在Python 中将类对象序列化为JSON
Apr 06 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
php中显示数组与对象的实现代码
2011/04/18 PHP
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
2013/06/02 PHP
PHP+Javascript实现在线拍照功能实例
2015/07/18 PHP
基于PHP生成简单的验证码
2016/06/01 PHP
php中关于换行的实例写法
2019/09/26 PHP
Div Select挡住的解决办法
2008/08/07 Javascript
jQuery 学习 几种常用方法
2009/06/11 Javascript
入门基础学习 ExtJS笔记(一)
2010/11/11 Javascript
jQuery实现 注册时选择阅读条款 左右移动
2013/04/11 Javascript
创建js对象和js类的方法汇总
2014/12/24 Javascript
jQuery中:lt选择器用法实例
2014/12/29 Javascript
jQuery验证插件validation使用指南
2015/04/21 Javascript
jQuery使用drag效果实现自由拖拽div
2015/06/11 Javascript
AngualrJS中每次$http请求时的一个遮罩层Directive
2016/01/26 Javascript
AngularJS中处理多个promise的方式
2016/02/02 Javascript
jquery 判断selection range 是否在容器中的简单实例
2016/08/02 Javascript
浅析Javascript ES6中的原生Promise
2016/08/25 Javascript
bootstrap flask登录页面编写实例
2016/11/01 Javascript
JS完成画圆圈的小球
2017/03/07 Javascript
在vue中获取dom元素内容的方法
2017/07/10 Javascript
js 显示日期时间的实例(时间过一秒加1)
2017/10/25 Javascript
五步轻松实现JavaScript HTML时钟效果
2020/03/25 Javascript
NodeJS父进程与子进程资源共享原理与实现方法
2018/03/16 NodeJs
图片文字识别(OCR)插件Ocrad.js教程
2018/11/26 Javascript
使用Python的Supervisor进行进程监控以及自动启动
2014/05/29 Python
Python学习之asyncore模块用法实例教程
2014/09/29 Python
python利用matplotlib库绘制饼图的方法示例
2016/12/18 Python
Python设计模式之装饰模式实例详解
2019/01/21 Python
Python docutils文档编译过程方法解析
2020/06/23 Python
Under Armour安德玛法国官网:美国高端运动科技品牌
2018/06/29 全球购物
幼儿园教师考核制度
2014/02/01 职场文书
《王二小》教学反思
2014/02/27 职场文书
项目申报专员岗位职责
2014/07/09 职场文书
员工年终考核评语
2014/12/31 职场文书
2015年青年志愿者协会工作总结
2015/04/27 职场文书