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 相关文章推荐
python3.3教程之模拟百度登陆代码分享
Jan 16 Python
Python中的sort()方法使用基础教程
Jan 08 Python
python3使用PyMysql连接mysql数据库实例
Feb 07 Python
Python实现字符串反转的常用方法分析【4种方法】
Sep 30 Python
Python使用装饰器进行django开发实例代码
Feb 06 Python
Python迭代器和生成器定义与用法示例
Feb 10 Python
Python中字符串List按照长度排序
Jul 01 Python
Python识别快递条形码及Tesseract-OCR使用详解
Jul 15 Python
使用pyecharts生成Echarts网页的实例
Aug 12 Python
Python猜数字算法题详解
Mar 01 Python
python基于tkinter制作无损音乐下载工具
Mar 29 Python
Python中os模块的简单使用及重命名操作
Apr 17 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/09/30 PHP
该如何加载google-analytics(或其他第三方)的JS
2010/05/13 Javascript
JavaScript中的Array对象使用说明
2011/01/17 Javascript
IE6/7/8/9不支持exec的简写方式
2011/05/25 Javascript
javascript学习笔记(四) Number 数字类型
2012/06/19 Javascript
通过js为元素添加多项样式,浏览器全兼容写法
2014/08/30 Javascript
JavaScript自定义等待wait函数实例分析
2015/03/23 Javascript
使用RequireJS库加载JavaScript模块的实例教程
2016/06/06 Javascript
微信开发 使用picker封装省市区三级联动模板
2016/10/28 Javascript
jquery 标签 隔若干行加空白或者加虚线的方法
2016/12/07 Javascript
详解vue与后端数据交互(ajax):vue-resource
2017/03/16 Javascript
swiper 解决动态加载数据滑动失效的问题
2018/02/26 Javascript
微信小程序实现全局搜索代码高亮的示例
2018/03/30 Javascript
Vue中$refs的用法详解
2018/06/24 Javascript
原生JS实现的简单轮播图功能【适合新手】
2018/08/17 Javascript
js中数组对象去重的两种方法
2019/01/18 Javascript
layui 表单标签的校验方法
2019/09/04 Javascript
VsCode与Node.js知识点详解
2019/09/05 Javascript
javascript 代码是如何被压缩的示例代码
2020/05/06 Javascript
[46:00]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第一局
2016/03/03 DOTA
Python 关于反射和类的特殊成员方法
2017/09/14 Python
python负载均衡的简单实现方法
2018/02/04 Python
Python爬虫包BeautifulSoup异常处理(二)
2018/06/17 Python
使用sklearn之LabelEncoder将Label标准化的方法
2018/07/11 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
Python用字典构建多级菜单功能
2019/07/11 Python
布隆过滤器的概述及Python实现方法
2019/12/08 Python
给 TensorFlow 变量进行赋值的方式
2020/02/10 Python
Python 批量读取文件中指定字符的实现
2020/03/06 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
Python图像识别+KNN求解数独的实现
2020/11/13 Python
Willer台湾:日本高速巴士/夜行巴士预约
2017/07/09 全球购物
New Balance俄罗斯官方网上商店:购买运动鞋
2020/03/02 全球购物
武汉某公司的C#笔试题面试题
2015/12/25 面试题
Java语言程序设计测试题判断题部分
2013/01/06 面试题
硕士研究生就业推荐信
2014/05/18 职场文书