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')  # 下一曲按钮

music_list = []
path = "C:\\Users\\Administrator\\Desktop\\tast"
filelist = os.listdir(path)
num = -1
for i in filelist:
    if i[-4:] == ".wav" or i[-4:] == ".ogg":
        music_list.append(i)
volume = 0.2
pygame.mixer.music.set_volume(volume) 
click = 0
play_button = stop_img
angle = 0
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
                pygame.mixer.music.set_volume(volume)
            if event.key == locals.K_s:
                volume -= 0.1
                if volume < 0:
                    volume = 0
                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 > 350 and y < 450:
                    click += 1
                    if click % 2 == 0:
                        play_button = stop_img
                        pygame.mixer.music.unpause()
                    else:
                        play_button = play_img
                        pygame.mixer.music.pause()
                if x > 420 and x < 520 and y > 350 and y < 400:    
                    num += 1
                    if num > len(music_list) - 1:
                        num = 0
                    pygame.mixer.music.load(path + "\\" + music_list[num])
                    pygame.mixer.music.play()
                    play_button = stop_img
                    if click % 2 == 0:
                        click += 2
                    else:
                        click += 1

                if x > 120 and x < 220 and y > 350 and y < 400:     
                    num -= 1
                    if num < 0:
                        num = len(music_list) - 1
                    pygame.mixer.music.load(path + "\\" + music_list[num])
                    pygame.mixer.music.play()
                    play_button = stop_img
                    if click % 2 == 0:
                        click += 2
                    else:
                        click += 1

    if pygame.mixer.music.get_busy() == False:
        num += 1
        if num > len(music_list)-1:
            num = 0
        pygame.mixer.music.load(path + "\\" + music_list[num])
        pygame.mixer.music.play()
        play_time=pygame.mixer.music.get_pos()
        play_time=int(play_time/1000)

        play_m=play

    new_logo = pygame.transform.rotate(logo_img, angle)
    newrect=new_logo.get_rect(center=(320,200))
    angle += 1
    screen.blit(bg_img, (0, 0))      
    screen.blit(play_button, (270, 330))   
    screen.blit(logo_img, (170, 60))    
    screen.blit(last_img, (120, 350))   
    screen.blit(next_img, (420, 350))   
  
    pygame.display.update()