当前位置:   article > 正文

使用pygame库实现的简单的音乐播放器

使用pygame库实现的简单的音乐播放器

这段代码是一个使用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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述
以下是代码的主要功能和组成部分的解释:

初始化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库来创建一个简单的音乐播放器,它能够控制音乐的播放、暂停、快进和获取播放位置。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/1003313
推荐阅读
相关标签
  

闽ICP备14008679号