使用Pyfoobar将歌曲长度更改为数字

时间:2013-02-24 06:02:04

标签: python

尝试使用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

可能有一些显而易见的东西我缺失了,但是我找不到修复错误的原因,特别是因为计算长度的行将返回正确的秒数。

1 个答案:

答案 0 :(得分:1)

您确定playRandom是同步的吗?您在调用isPlaying之前测试了lengthOfTrack,但可能在调用playRandom之后(并且在执行完之前)isPlaying为false,因此lengthOfTrack将返回一些未定义的内容。我没有COM的经验,所以也许我说的是愚蠢的,但我要尝试的第一件事是在循环内再次重新检查isPlaying