来源:百度动图
还记得之前发表的3D星空图吗?一直想给喜欢的星空图加上背景图片和音乐。
经过研究终于实现啦!戳 Python画好看的星空图(唯美的背景)
本文就教大家怎么在Python中添加音乐,让你的代码唱歌吧。
本来准备用prompt中的pip安装pygame库,但是会报如下错误:
So,决定从自己手动下载安装。
先从http://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame下载whl文件。
cp27代表python2.7版本,win32代表32位操作系统。我的是python3.7,系统是64位,所以我下载的是pygame-1.9.6-cp37-cp37m-win_amd64.whl。
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出现如下返回语句就说明安装成功啦。
# coding: utf-8
import pygame #导入可以加载音乐的库
import os #导入设置路径的库
os.chdir('F:/微信公众号/Python/29.加载音乐') #把路径改为数据存放的路径
os.getcwd() #看下当前路径
本段代码可以在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唱歌”免费获取。
运行该代码电脑桌面会出现一个如下所示的开关界面:
点击该界面可以暂停音乐,再点击一下可以重新播放。
树影婆娑下的星空,一切都显得静谧,万里星空,又在诉说着谁的思念?
万千森林,只寻一处幽香。星河滚烫,你是人间理想。
你可能感兴趣:
用Python绘制皮卡丘
用Python绘制词云图
Python入门干货经验(免费提供资料)
用Python绘制杨紫作品集动态二维码
Python画好看的星空图(唯美的背景)
Python画好看的星空图V2版——添加背景图片和音乐