2013-02-14 17 views
1

我無法計算如何使用pyspotify加載專輯元數據。無論我嘗試過,albumbrowser仍在加載。使用PySpotify加載Spotify專輯元數據

這裏是我的類:

LOGGED_IN由回調調用時,我們在主函數中使用session.connect()在成功登錄。

class sessionManager(SpotifySessionManager): 
    appkey_file = os.path.join(os.path.dirname(__file__), 'spotify_appkey.key') 

    def __init__(self, *a, **kw): 
      SpotifySessionManager.__init__(self, *a, **kw) 


    def logged_in(self, session, error): 
      link=Link.from_string("spotify:album:4DR0GWo7w2GJyQnFVa4jAB") 
      line="" 
      if link.type() == link.LINK_ALBUM: 
        browser = AlbumBrowser(link.as_album()) 
        while not browser.is_loaded(): 
          line+="." 
          time.sleep(1) 
          sys.stdout.write("\r%s" % line) 
          sys.stdout.flush() 
        for track in browser: 
          print track.name() 
      if link.type() == link.LINK_ARTIST: 
        browser = ArtistBrowser(link.as_artist()) 
        while not browser.is_loaded(): 
          line+="." 
          time.sleep(1) 
          sys.stdout.write("\r%s" % line) 
          sys.stdout.flush() 
        for album in browser: 
          print album.name() 

這是我在課堂上如何調用:

if __name__ == '__main__': 
     import optparse 
     op = optparse.OptionParser(version="%prog 0.1") 
     op.add_option("-u", "--username", help="Spotify username") 
     op.add_option("-p", "--password", help="Spotify password") 
     op.add_option("-v", "--verbose", help="Show debug information", 
       dest="verbose", action="store_true") 
     op.add_option("-b", "--album", help="Spotify Album ID") 
     (options, args) = op.parse_args() 
     if options.verbose: 
       logging.basicConfig(level=logging.DEBUG) 
     sessionM = sessionManager(options.username, options.password, True) 
     sessionM.connect() 

你有什麼事我會忘記的想法?

+0

你可以給出更多關於這段代碼運行的地方嗎?什麼叫它?它是由Spotify的回調調用的嗎? – Weeble 2013-02-14 11:23:55

回答

0

你的問題很可能是這樣的:

while not browser.is_loaded(): 

libSpotify(以及由此延伸,PySpotify)運行在你初始化它的線程。由於您正在執行緊密循環,因此實際上阻止了libSpotify執行任何操作的能力,並且瀏覽請求最終會超時。

而不是做一個緊密的循環,而是依靠回調函數來加載東西。

相關問題