用Pygame找一首歌的长度

时间:2011-08-04 05:00:33

标签: 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()),

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

3 个答案:

答案 0 :(得分:5)

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

a = pygame.mixer.Sound("test.wav")
print("length",a.get_length())

答案 1 :(得分:1)

检查Documentation。根据该站点,此函数以秒为单位返回声音对象的长度。因此,剩余时间只是(pygame.mixer.music.get_length() - pygame.mixer.music.get_pos())*-1

这样,它显示为负数,就像大多数剩余时间计数器在音乐播放器中所做的那样。注意,我在这台电脑上没有pygame,所以我无法测试它。所以,检查它只是为了确保。

答案 2 :(得分:0)

mutagen.mp3可用于查找音乐的长度。

首先: pip install mutagen

->İmport:

from pygame import *
from mutagen.mp3 import MP3

->使用:

mixer.music.load('example.mp3')
song = MP3('example.mp3')
songLength = song.info.length