尝试使用pyfoobar为foobar制作一个正在播放的脚本时,我一直在尝试将当前曲目的长度(字符串)转换为常规整数。
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)
为了使用每个新曲目进行更新,我使用的循环延迟了当前曲目的秒数。编译时,我收到以下错误:
Traceback (most recent call last):
File "C:\Users\000\Downloads\pyfoobar\pyfoobar\playing.py", line 8, in <module>
minute=int(length[0])*60
IndexError: string index out of range
可能有一些显而易见的东西我缺失了,但是我找不到修复错误的原因,特别是因为计算长度的行将返回正确的秒数。
答案 0 :(得分:1)
您确定playRandom
是同步的吗?您在调用isPlaying
之前测试了lengthOfTrack
,但可能在调用playRandom
之后(并且在执行完之前)isPlaying
为false,因此lengthOfTrack
将返回一些未定义的内容。我没有COM的经验,所以也许我说的是愚蠢的,但我要尝试的第一件事是在循环内再次重新检查isPlaying
。