我正在尝试写一个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的列表。”。为什么这不是一个清单?
答案 0 :(得分:1)
https://www.pykka.org/en/latest/#actor-proxies有更多关于如何使用actor代理的信息,这是self.core
应该是什么。
考虑到这一点,您希望代码为:
track = self.core.tracklist.get_tl_tracks().get()[channelIndex]
这可以确保您获取核心返回的列表,而不是仅仅尝试使用未来,这只是在某个时刻提供列表或错误的承诺。