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",20)
# 载入音乐
num=-1
music_list=[]
path='C:\\Users\\EDZ\\Desktop\\gg'
filelist=os.listdir(path)
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
music_lenght=0
play_time=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_UP:
                volume += 0.1
                if volume > 1:
                    volume = 1
                pygame.mixer.music.set_volume(volume)
            if event.key == locals.K_DOWN:
                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>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
                    click=0
                    music1 = pygame.mixer.Sound(path + "\\" + music_list[num])
                    music_length = music1.get_length()
                    music_length = int(music_length)
                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
                    click=0
                    music1 = pygame.mixer.Sound(path + "\\" + music_list[num])
                    music_length = music1.get_length()
                    music_length = int(music_length)
                    
                    print(music_lenght)
                    
    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()
        music1 = pygame.mixer.Sound(path + "\\" + music_list[num])
        music_length = music1.get_length()
        music_length = int(music_length)
        print(music_lenght)

    
    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)
    info1=str(play_m)+":"+str(play_s)

    music_m=music_lenght//60
    music_s=music_lenght%60
    if music_s<10:
        music_s="0"+str(music_s)
    info2=str(music_m)+":"+str(music_s)

    
    
    
    new_logo=pygame.transform.rotate(logo_img,angle)
    new_Rect=new_logo.get_rect(center=(320,200))
    #print(new_Rect)
    pos=(new_Rect[0],new_Rect[1])
    angle+=1

    # 绘制画面
    screen.blit(bg_img, (0, 0))      # 填充背景
    screen.blit(play_button, (270, 330))   # 暂停按钮
    screen.blit(new_logo, pos)    # 中间logo图
    screen.blit(last_img, (120, 350))   # 上一曲
    screen.blit(next_img, (420, 350))   # 下一曲
    text=font.render(info1,True,(0,0,0))
    screen.blit(text,(200,200))
    text2=font.render(info2,True,(0,0,0))
    screen.blit(text2,(240,200))
    
    # 刷新画面
    pygame.display.update()