Mopidy Extension:'ThreadingFuture'对象不支持索引

时间:2017-04-06 17:55:00

标签: python

我正在尝试写一个Mopidy扩展。以下代码打印下面的错误消息。

 def switch_channel(self, input_event):
        channelIndex = input_event['channel']-1
        track = self.core.tracklist.get_tl_tracks()[channelIndex]
        if self.core.playback.state.get() == core.PlaybackState.PLAYING:
            self.core.playback.play(track)

错误:

  

文件   “/home/pi/Documents/python/test_extension/mopidy-radiostar/mopidy_radiostar/frontend.py”   第63行,在switch_channel中       track = self.core.tracklist.get_tl_tracks()[channelIndex] TypeError:'ThreadingFuture'对象不支持索引

Mopidy文档声明“将跟踪列表作为mopidy.models.TlTrack的列表。”。为什么这不是一个清单?

1 个答案:

答案 0 :(得分:1)

https://www.pykka.org/en/latest/#actor-proxies有更多关于如何使用actor代理的信息,这是self.core应该是什么。

考虑到这一点,您希望代码为:

track = self.core.tracklist.get_tl_tracks().get()[channelIndex]

这可以确保您获取核心返回的列表,而不是仅仅尝试使用未来,这只是在某个时刻提供列表或错误的承诺。