用Pygame找一首歌的长度

JRJ*_*man 6 python pygame playback

我正在构建一个无线电自动化程序,但我无法弄清楚如何让计时器倒计时在歌曲中剩下的秒数.我目前正在使用Pygame,并不想真正为此加载另一个工具包.到目前为止,我可以使用这个来计算计时器:

import pygame

#setup music
track = "Music/Track02.wav"
pygame.mixer.music.load(track)
pygame.mixer.music.play()
print("Playing Music")
while(pygame.mixer.music.get_busy()):
    print "\r"+str(pygame.mixer.music.get_pos()),
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在没有播放歌曲的情况下获得歌曲和倒计时的总长度.

nmi*_*min 5

您还可以将歌曲作为普通声音加载,并在使用mixer.music播放时检查长度.

a = pygame.mixer.Sound("test.wav")
print("length",a.get_length())
Run Code Online (Sandbox Code Playgroud)


Jon*_*anb 1

检查文档。根据该网站,该函数返回声音对象的长度(以秒为单位)。所以,剩下的时间简直就是(pygame.mixer.music.get_length() - pygame.mixer.music.get_pos())*-1

这样,它就会显示为负数,就像音乐播放器中的大多数剩余时间计数器一样。注意,我这台电脑上没有pygame,所以无法测试。因此,请检查一下以确保确定。

  • .get_length 仅适用于 pygame 声音,不适用于 pygame.mixer.music (3认同)