import pygame
from pygame import locals
import os
pygame.init()  # 初始化
# 创建窗口
screen = pygame.display.set_mode((640, 480))
# 载入图片、资源
bg_img = pygame.image.load('background.png')  # 背景图
play_img = pygame.image.load('play.png')  # 播放按钮
stop_img = pygame.image.load('stop.png')  # 暂停按钮
last_img = pygame.image.load('last.png')  # 上一曲按钮
next_img = pygame.image.load('next.png')  # 下一曲按钮
logo_img = pygame.image.load('logo.png')  # 下一曲按钮
font = pygame.font.Font("neuropol.ttf",16)
pygame.mixer.music.load('歌曲2.wav')  # 载入音乐
music=[]#音乐列表
path= "C:\\Users\\60347\\Desktop\\音乐播放器" #音乐文件的地址
file=os.listdir(path) #找出所有文件
for i in file: #遍历文件
    if(i[-4:]==".ogg" or i[-4:]==".mp3" or i[-4:]==".wav"):#查找符合条件的文件
        music.append(i) #添加音乐文件
n=0 #初始化为0,指第一首歌
volume = 0.2
pygame.mixer.music.set_volume(volume)  # 初始播放音量
click=0
play_button=stop_img #初始显示暂停按钮(因为处于播放状态)
is_play=1
angle=1
while True:
    for event in pygame.event.get():
        if event.type == locals.QUIT:
            exit()
        # 按键,控制声音大小
        if event.type == locals.KEYDOWN:
            if event.key == locals.K_w:
                volume += 0.1
                if volume > 1:
                    volume = 1
                    #按下w键,音量增大
                pygame.mixer.music.set_volume(volume)
            if event.key == locals.K_s:
                volume -= 0.1
                if volume < 0:
                    volume = 0
                    #按下s键,音量减小
                pygame.mixer.music.set_volume(volume)
        if event.type==locals.MOUSEBUTTONDOWN:
            if event.button==1:
                x,y=event.pos
                if x>270 and x<370 and y<450 and y>350:
                    click+=1
                    if click%2==0:
                        play_button=stop_img
                        pygame.mixer.music.unpause()
                        is_play=1
                    else:
                        pygame.mixer.music.pause()
                        play_button=play_img
                        is_play=0
                if x > 120 and x < 220 and y>350 and y<350+last_img.get_height():
                    if music:
                        n-=1
                        if n<0:
                            n=len(music)-1
                    pygame.mixer.music.load(path+"\\"+music[n])
                    pygame.mixer.music.play()
                    is_playing = True               
                    play_button=stop_img
                if x > 420 and x < 420 + y>350 and y<350 + last_img.get_height():
                    if music:
                        n+=1
                        if n>=len(music):
                            n=0
                        pygame.mixer.music.load(path+"\\"+music[n])
                        pygame.mixer.music.play()
                        is_playing = True               
                        play_button=stop_img

#logo旋转
    new_logo=pygame.transform.rotate(logo_img,angle)
    if(is_play):
        angle+=2


    logo_x_y=new_logo.get_rect(center=(320,200))
    print(logo_x_y)


    if is_play and pygame.mixer.music.get_busy() == False:
        n=n+1
        if(n>len(music)-1):
            n=0
        pygame.mixer.music.load(path+"\\"+music[n])
        pygame.mixer.music.play()

#进度显示
    play_time=pygame.mixer.music.get_pos()#获取应当播放时长
    play_time=int(play_time/1000)
    play_m=play_time//60
    play_s=play_time//60
    if play_s<10:
        play_s="0"+ ":" + str(play_s)
    info=str(play_m) + ":" + str(play_s)
    tex = font.render(info,True,(0,0,0))
    # txt = font.render(info,True,(89,99,200))

    # 绘制画面
    screen.blit(bg_img, (0,0))      # 填充背景
    screen.blit(play_button, (270, 330))   # 暂停按钮
    screen.blit(new_logo, (logo_x_y[0], logo_x_y[1]))    # 中间logo图
    screen.blit(last_img, (120, 350))   # 上一曲
    screen.blit(next_img, (420, 350))   # 下一曲
    # 刷新画面
    pygame.display.update()

1 条评论

  • 1