今天咱们来动手作一个小项目,基于 Pygame 来实现一个 MP3 播放器,虽然当前项目还比较简陋,可是这就是咱们前进的第一步!app
相信对于 Pygame 有所了解的小伙伴应该清楚,在版本2.0之前,Pygame 加载图片只支持 BMP 格式,因此咱们须要先生成 BMP 格式的图片,这里我选择网上的自动转换网站:dom
https://www.aconvert.com/cn/image/ide
这个网站很是好用,后面咱们还会用它来进行音频文件的转换网站
拿到背景 BMP 文件后,咱们就能够编写代码来加载图片了ui
import pygame
import sys
import random
from pygame.locals import *
pygame.init()
size = width, height = 430, 215
screen = pygame.display.set_mode(size)
pygame.display.set_caption("自制MP3")
bg = pygame.image.load_basic("/Users/edisonvera/Downloads/luobologo.bmp")
bgrect = bg.get_rect()
下面咱们来看下效果spa
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
screen.blit(bg, bgrect)
效果图:code
接下来,咱们给咱们的背景增长一些特效,好比雪花
咱们先在画布内随机生成一些点orm
def snow(size):
snow_list = []
for i in range(150):
x_site = random.randrange(0, size[0])
y_site = random.randrange(0, size[1])
X_shift = random.randint(-1, 1)
radius = random.randint(4, 6)
snow_list.append([x_site, y_site, X_shift, radius])
return snow_list
而后再把生成的这些点状图案画到咱们的背景图当中blog
for i in range(len(snow_list)):
pygame.draw.circle(screen, (255, 255, 255), snow_list[i][:2], snow_list[i][3] - 3)
snow_list[i][0] += snow_list[i][2]
snow_list[i][1] += snow_list[i][3]
if snow_list[i][1] > size[1]:
snow_list[i][1] = random.randrange(-50, -10)
snow_list[i][0] = random.randrange(0, size[0])
这样,咱们就有了雪花飘飘的感受了图片
最后,咱们来加载音频,由于 Pygame 对于 mp3 等音频格式的文件支持的不太好,因此仍是使用上面的网站,把对应的音频文件转成 ogg 格式
而后就能够加载音频文件了
pygame.mixer.init()
track = pygame.mixer.music.load("/Users/edisonvera/Downloads/snow.ogg")
pygame.mixer.music.play()
pygame.mixer_music.fadeout(600000)
pause = False
固然,对于一个简易的播放器来讲,暂停、开始都是必备的,咱们再增长点击键盘的空格,来控制播放的功能
if pause:
pygame.mixer.music.pause()
else:
pygame.mixer.music.unpause()
这样,一个简易的 MP3 播放器就完成了,快来试试吧!