小项目 | 基于 Pygame 自制一个背景优美的 MP3 播放器

简介: 今天我们来动手做一个小项目,基于 Pygame 来实现一个 MP3 播放器,虽然当前项目还比较简陋,但是这就是我们前进的第一步!

添加背景图片


相信对于 Pygame 有所了解的小伙伴应该清楚,在版本2.0以前,Pygame 加载图片只支持 BMP 格式,所以我们需要先生成 BMP 格式的图片,这里我选择网上的自动转换网站:

https://www.aconvert.com/cn/image/


微信图片_20220520184229.png

这个网站非常好用,后面我们还会用它来进行音频文件的转换

拿到背景 BMP 文件后,我们就可以编写代码来加载图片了

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()

下面我们来看下效果

while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
        screen.blit(bg, bgrect)

效果图:


微信图片_20220520184234.png

添加雪花特效


接下来,我们给我们的背景增加一些特效,比如雪花

我们先在画布内随机生成一些点

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

然后再把生成的这些点状图案画到我们的背景图当中

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 播放器就完成了,快来试试吧!

相关文章
|
6月前
|
Python
Python使用pygame播放MP3
Python使用pygame播放MP3
87 0
|
2月前
|
Python
音乐播放 pygame mp3play 和获取音乐信息的 库from mutagen.mp3 import MP3
音乐播放 pygame mp3play 和获取音乐信息的 库from mutagen.mp3 import MP3
|
6月前
|
Python
小项目 | 基于 Pygame 自制一个背景优美的 MP3 播放器
小项目 | 基于 Pygame 自制一个背景优美的 MP3 播放器
小项目 | 基于 Pygame 自制一个背景优美的 MP3 播放器
|
6月前
|
存储 人工智能 算法
使用 Python 和 Pygame 制作游戏:第九章到第十章
使用 Python 和 Pygame 制作游戏:第九章到第十章
120 0
使用 Python 和 Pygame 制作游戏:第九章到第十章
|
3月前
|
定位技术 Python
【python】python基于pygame坦克大战游戏设计(源码+图像+操作说明)【独一无二】
【python】python基于pygame坦克大战游戏设计(源码+图像+操作说明)【独一无二】
|
3月前
|
Linux iOS开发 MacOS
【Python】Python基于Pygame疯狂赛车游戏设计(源码+报告)【独一无二】
【Python】Python基于Pygame疯狂赛车游戏设计(源码+报告)【独一无二】
|
3月前
|
Python
【python】python基于pygame弹珠游戏设计(源码)【独一无二】
【python】python基于pygame弹珠游戏设计(源码)【独一无二】
|
3月前
|
算法 数据安全/隐私保护 UED
【python】python基于Pygame扫雷游戏设计实现(源码+报告)【独一无二】
【python】python基于Pygame扫雷游戏设计实现(源码+报告)【独一无二】
|
5月前
|
开发框架 Python
Python的`pygame`库用于2D游戏开发,涵盖图形、音频和输入处理。
【6月更文挑战第21天】Python的`pygame`库用于2D游戏开发,涵盖图形、音频和输入处理。要开始,先通过`pip install pygame`安装。基本流程包括:初始化窗口、处理事件循环、添加游戏元素(如玩家和敌人)、响应用户输入、更新游戏状态及结束条件。随着项目发展,可逐步增加复杂性。
137 1