def __next__(self):
# For the most part, the buffer-filling thread should prevent the need for waiting here,
# but wait exponentially (up to about 32 seconds) for it to fill before giving up.
log_msg("Spotify radio track buffer asked for next item", xbmc.LOGDEBUG)
attempts = 0
while attempts <= 5:
self._buffer_lock.acquire()
if len(self._buffer) <= self.MIN_BUFFER_SIZE:
self._buffer_lock.release()
sleep_time = pow(2, attempts)
log_msg("Spotify radio track buffer empty, sleeping for %d seconds" % sleep_time, xbmc.LOGDEBUG)
time.sleep(sleep_time)
attempts += 1
else:
track = self._buffer.pop(0)
self._buffer_lock.release()
log_msg("Got track '%s' from Spotify radio track buffer" % track["id"], xbmc.LOGDEBUG)
return track
raise StopIteration
# Support both Python 2.7 & Python 3.0
plugin_content.py 文件源码
python
阅读 18
收藏 0
点赞 0
评论 0
评论列表
文章目录