Ändern der Songlänge in eine Zahl mit Pyfoobar - Python

Beim Versuch, ein jetzt spielendes Skript für foobar mit zu machen pyfoobar, Ich habe versucht, die Länge der aktuellen Spur, eine Zeichenfolge, in eine reguläre Ganzzahl zu konvertieren.

from pyfoobar import foobar
import time

fb2k = foobar()
while(fb2k.isPlaying()==True):
fb2k.playRandom()
length=fb2k.lengthOfTrack()
minute=int(length[0])*60
second=int(length[2:])
length=(minute+second)-1
print "Now Playing: "+fb2k.getCurrentArtist()+" - "+fb2k.getCurrentTrack()
time.sleep(length)

Um mit jeder neuen Spur zu aktualisieren, verwende ich eine Schleife, die um die Anzahl der Sekunden in der aktuellen Spur verzögert ist. Beim Kompilieren erhalte ich den folgenden Fehler:

Traceback (most recent call last):
File "C:Users00Downloadspyfoobarpyfoobarplaying.py", line 8, in <module>
minute=int(length[0])*60
IndexError: string index out of range

Es ist wahrscheinlich etwas offensichtlich, das ich vermisse, aber ich kann nicht finden, was den Fehler behebt, besonders weil die Zeilen, die die Länge berechnen, die richtige Anzahl von Sekunden zurückgeben werden.

Antworten:

1 für die Antwort № 1

Bist du sicher playRandom ist synchron? Du hast getestet isPlaying bevor Sie anrufen lengthOfTrack, aber vielleicht nach dem Anruf playRandom (und bevor es die Ausführung beendet hat) isPlaying ist falsch, also lengthOfTrack wird etwas undefiniertes zurückgeben. Ich habe keine Erfahrung mit COM, also würde ich vielleicht etwas Dummes sagen, aber das erste, was ich versuchen würde, ist, nochmal nachzusehen isPlaying wieder in der Schleife.