赞
踩
这段代码是一个使用pygame库实现的简单的音乐播放器,它能够播放音乐、暂停、继续以及快进和获取当前播放位置。
import pygame
from pygame.locals import *
SIZE = WIDTH, HEIGHT = 640, 339
FPS = 60
pygame.mixer.pre_init(44100, 16, 2, 5012)
pygame.init()
pygame.mixer.init()
screen = pygame.display.set_mode(SIZE)
clock = pygame.time.Clock()
pygame.mixer.music.load(“megaWall.mp3”)
bg_sur = pygame.image.load(“bg8_2.png”).convert_alpha()
is_pause = True # 暂停与继续开关
is_play = False # 音乐开关
while 1: #
screen.blit(bg_sur, (0, 0))
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
exit()
if event.type == KEYDOWN:
if event.key == K_RETURN: # 开始播放(一遍)
pygame.mixer_music.play(1, 0.0)
is_play = True
if event.key == K_SPACE: # 暂停播放
if is_pause:
print(“暂停播放”)
pygame.mixer_music.pause()
is_pause = False
else:
print(“继续播放”)
pygame.mixer_music.unpause()
is_pause = True
if event.mod in [KMOD_LCTRL, KMOD_RCTRL]:
if event.key == K_s: # 设置播放位置
pygame.mixer_music.rewind()
print(“是否停止:”, pygame.mixer_music.get_busy()," 毫秒")
pygame.mixer_music.set_pos(3)
if event.key == K_g: # 获取播放位置
play_time = pygame.mixer_music.get_pos()
print(“已播放时长:”, play_time, " 毫秒")
if is_play:
if pygame.mixer_music.get_busy():
print("开始播放时间点:", pygame.time.get_ticks()," 毫秒")
is_play = False
else:
if not pygame.mixer_music.get_busy():
print("停止播放时间点:", pygame.time.get_ticks()," 毫秒")
is_play = True
pygame.display.update()
clock.tick(FPS)
以下是代码的主要功能和组成部分的解释:
初始化pygame和音频:
pygame.init() 初始化pygame库。
pygame.mixer.init() 初始化pygame的音频模块。
pygame.mixer.pre_init() 预初始化音频模块,设置音频的一些参数。
设置窗口大小:SIZE = WIDTH, HEIGHT = 640, 339 定义了窗口的宽度和高度。
加载音乐和背景图:
pygame.mixer.music.load(“megaWall.mp3”) 加载音乐文件。
bg_sur = pygame.image.load(“bg8_2.png”).convert_alpha() 加载背景图片,并转换为具有透明通道的图像。
定义控制变量:
is_pause 用来控制音乐的暂停和继续。
is_play 用来控制音乐的播放状态。
主循环:while 1: 是程序的主循环,在这个循环中,程序会不断处理事件和更新显示。
处理QUIT事件:如果用户点击关闭窗口,程序会退出。
处理键盘事件:
KEYDOWN 事件用于响应键盘按键。
K_RETURN 键用于开始播放音乐。
K_SPACE 键用于暂停和继续播放音乐。
KMOD_LCTRL 或 KMOD_RCTRL 加上 K_s 用于快退到音乐的特定位置。
KMOD_LCTRL 或 KMOD_RCTRL 加上 K_g 用于获取当前播放位置。
播放音乐:如果 is_play 为 True,则调用 pygame.mixer_music.play(1, .) 播放音乐一次。
暂停和继续音乐:根据 is_pause 的状态,调用 pygame.mixer_music.pause() 或 pygame.mixer_music.unpause()。
快退和获取播放位置:使用 pygame.mixer_music.rewind() 快退音乐,使用 pygame.mixer_music.set_pos() 设置播放位置,使用 pygame.mixer_music.get_pos() 获取当前播放位置。
检查音乐播放状态:通过 pygame.mixer_music.get_busy() 检查音乐是否正在播放,并相应地更新 is_play 的状态。
更新显示:pygame.display.update() 更新屏幕上的显示内容。
控制帧率:clock.tick(FPS) 确保程序运行的帧率不超过设定的FPS值。
这段代码展示了如何使用pygame库来创建一个简单的音乐播放器,它能够控制音乐的播放、暂停、快进和获取播放位置。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。