Найдите длину песни с Pygame - PullRequest
5 голосов
/ 04 августа 2011

Я создаю программу автоматизации радио, но я не могу понять, как сделать таймер обратного отсчета количества секунд, оставшихся в песне.В настоящее время я использую 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 ]

5 голосов
/ 10 июля 2012

Вы также можете загрузить песню в качестве обычного звука и проверить длину, используя для этого файл mixer.music.

a = pygame.mixer.Sound("test.wav")
print("length",a.get_length())
1 голос
/ 04 августа 2011

Проверьте Документация .По данным сайта, эта функция возвращает длину звукового объекта в секундах.Таким образом, оставшееся время просто равно (pygame.mixer.music.get_length() - pygame.mixer.music.get_pos())*-1.

Таким образом, оно отображается как отрицательное число, как большинство счетчиков оставшегося времени в музыкальном проигрывателе.Обратите внимание, у меня нет Pygame на этом компьютере, поэтому я не могу проверить его.Итак, проверьте это, чтобы убедиться.

0 голосов
/ 13 декабря 2018

Mutagen.mp3 можно использовать для поиска длины музыки.

Во-первых: pip install mutagen

-> Импорт:

from pygame import *
from mutagen.mp3 import MP3

-> Использование:

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