你的Python会唱歌吗?
本文目录
- 加载库 1.1 下载pygame 1.2 安装pygame
- 用代码控制Python播放音乐 2.1 加载库并设置路径 2.2 播放音乐
- 添加开关按钮
- 添加音乐后的星空图实例
一、加载库
本来准备用prompt中的pip安装pygame库,但是会报如下错误:
So,决定自己手动下载安装。
1 下载pygame
先从网上下载whl文件。
cp27代表python2.7版本,win32代表32位操作系统。我的是python3.7,系统是64位,所以我下载的是pygame-1.9.6-cp37-cp37m-win_amd64.whl。
2 安装pygame
step1—> 在存放whl的文件夹中按shift+右键,调出cmd(点击OpenCmdHere)。
step2—> 在cmd中输入:pip install pygame-1.9.6-cp37-cp37m-win_amd64.whl。
等待一会就可以成功安装pygame库,如果已经安装好,cmd中会出现如下返回语句。
step3—> 检验是否安装成功。在Python或jupyter中输入import pygame出现如下返回语句就说明安装成功啦。
二、用代码控制Python播放音乐
1 加载库并设置文件路径
# coding: utf-8
import pygame #导入可以加载音乐的库
import os #导入设置路径的库
os.chdir('F:/微信公众号/Python/29.加载音乐') #把路径改为数据存放的路径
os.getcwd() #看下当前路径
2 播放音乐
本段代码可以在Python中实现简单的音乐播放功能,并设定慢慢淡化并退出音乐的语句。
pygame.mixer.init() # 初始化
track = pygame.mixer.music.load('星空.mp3') # 加载音乐文件
pygame.mixer.music.play() # 开始播放音乐流
pygame.mixer.music.fadeout(60000) # 设置音乐多久慢慢淡出结束
注:如需星空音乐文件实现该代码,可在公众号中回复“星空音乐”免费获取。
三、添加开关按钮
如果Python正在播放音乐,但我想先暂停一下,怎么办?
接下来的代码可以实现这个功能。
# coding: utf-8
import pygame #导入可以加载音乐的库
import os #导入设置路径的库
import sys
from pygame.locals import *
os.chdir('F:/微信公众号/Python/29.加载音乐') #把路径改为数据存放的路径
os.getcwd() #看下当前路径
pygame.init() # pygame初始化
pygame.mixer.init() #pygame.mixer初始化
pygame.mixer.music.load("星空.mp3") # 设置背景音乐
#pygame.mixer.music.set_volume(0.4) # 设置音量
pygame.mixer.music.play() # 播放音乐
bg_size = width, height = 300, 200 # 设置界面窗口
bg_rgb = (255, 255, 255)
screen = pygame.display.set_mode(bg_size)
pygame.display.set_caption("星空音乐")
clock = pygame.time.Clock() # 创建设置帧率对象
play_image = pygame.image.load("开始和暂停按钮2.png").convert_alpha() # 创建播放图片surface对象
pause_image = pygame.image.load("开始和暂停按钮2.png").convert_alpha() # 创建暂停图片surface对象
pause_rect = pause_image.get_rect() # 获取播放矩形框
print(pause_rect.width,pause_rect.height) # 获取暂停矩形框
pause_rect.left, pause_rect.top = (width - pause_rect.width) // 2, (height - pause_rect.height) // 2
pause = False # 定义播放标志位
while True:
# 查找队列事件
for event in pygame.event.get():
# 查找点击关闭窗口事件
if event.type == QUIT:
sys.exit()
# 查找鼠标左右击事件
if event.type == MOUSEBUTTONDOWN:
# 检测鼠标左击是否按下
if event.button == 1:
pause = not pause
# 检测鼠标右击是否按下
if event.button == 3:
pause = not pause
# 检测键是否按下
if event.type == KEYDOWN:
# 检测是否为空格键按下
if event.key == K_SPACE:
pause = not pause
# 填充界面背景
screen.fill(bg_rgb)
# 空格控制播放和暂停,并显示相应的图片
if pause:
pygame.mixer.music.pause()
screen.blit(pause_image, pause_rect)
else:
pygame.mixer.music.unpause()
screen.blit(play_image, pause_rect)
# 刷新缓冲区图像
pygame.display.flip()
# 控制帧率为30帧
clock.tick(30)
注:如需实现上述代码中的文件,可在公众号中回复“Python唱歌”免费获取。
运行该代码电脑桌面会出现一个如下所示的开关界面:
点击该界面可以暂停音乐,再点击一下可以重新播放。
四、添加音乐后的星空图实例
1 实例1
树影婆娑下的星空,一切都显得静谧,万里星空,又在诉说着谁的思念?
2 实例2
万千森林,只寻一处幽香。星河滚烫,你是人间理想。
有需要的小伙伴快给你的Python添加音乐功能吧。感觉表白的文件加上音乐会更浪漫呀!
- HDUOJ Children’s Queue
- HDUOJ----1250 Hat's Fibonacci
- HDUOJ---1133(卡特兰数扩展)Buy the Ticket
- HDUOJ--2079选课时间(题目已修改,注意读题)
- HDUOJ---2082
- HDUOJ---2152
- nyoj-----D的小L
- HDUOJ---The Moving Points
- HDUOJ---------Kia's Calculation
- HDUOJ----Good Numbers
- DP较为完整的知识
- HDUOJ----The Number Off of FFF
- HDUOJ-------Naive and Silly Muggles
- HDUOJ----A Computer Graphics Problem
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- WPF 从零手动创建承载 Xamarin Forms 项目
- 帝都房价回调?带你用Python了解北京二手房市场现状
- Zabbix 利用 ncat 监控远端端口状态
- MySQL“被动”性能优化汇总!
- H3C WA2610i-GN 无线AP FAT 配置案例
- java强引用、软引用、弱引用、虚引用以及FinalReference
- 读源码——JDK动态代理
- 图解红黑树
- 算法——递归
- LeetCode 94 | 基础题,如何不用递归中序遍历二叉树?
- 读源码——cglib动态代理
- 每日一题 | 字符串转换问题
- Git同时上传到github和码云(国内知名的男性交友网站)
- 读源码——Guava-Cache
- LeetCode 94 | 构造出所有二叉搜索树