无法离线登录

时间:2014-06-26 11:44:52

标签: c# .net spotify libspotify

连接互联网时,我可以使用用户名和密码登录。如果我在登录时断开互联网连接,我仍然可以收听离线列表。如果我重新连接互联网,我会在没有任何操作的情况下再次获得全部功能。

但是当我启动应用程序时无法访问互联网时,我无法登录以收听离线曲目。

我尝试使用blob而不是密码登录但没有成功(有或没有互联网)。我也玩过#34; rememberme"但是,在重新启动我的应用程序后,这似乎无法生存。

我在使用另一个时尝试过空字符串("")以及IntPtr.Zero用于密码和blob。

没有成功。我做错了什么?

3 个答案:

答案 0 :(得分:0)

我认为@Kendall Frey头脑发热,离线支持在libspotify中实现,但你可能至少需要在线才能启动它。 Spotify的移动和桌面客户端不是这种情况,但它们不是基于libspotify构建的。很抱歉,我不相信这种限制有任何办法。

答案 1 :(得分:0)

离线登录实际上应该在以下条件下使用凭据blob在libspotify中工作:

  • 用户至少已成功登录过一次。
  • 您允许libspotify创建和维护磁盘缓存。
  • libspotify能够正确地将凭据写入该缓存并在下次验证它们。
  • 您正确允许libspotify在您的应用程序退出时进行清理。

缓存是这里的重要部分。您必须将libspotify传递给磁盘上可读和可写的位置。

非常重要正在正确退出。您必须注销用户并等待该过程完成,因为您的应用程序退出或致电flush_caches()并等待该过程完成。否则,libspotify无法正确写入缓存以便下次启用脱机登录。如果您在没有正确的libspotify清理的情况下退出流程,则离线登录无法正常工作。

答案 2 :(得分:0)

你是完全正确的iKenndac! 事实上,问题出在键盘背后,因为我对连接状态和登录回调的sp_error感到困惑。

我确实以与连接时相同的方式成功登录。这是用户名和密码和"记住我"。

混淆来自api.h中的评论

  

SP_CONNECTION_STATE_LOGGED_OUT = 0,///<用户尚未登录

     

SP_CONNECTION_STATE_LOGGED_IN = 1,///<登录Spotify访问点

     

SP_CONNECTION_STATE_DISCONNECTED = 2,///<已登录,但现已断开连接

     

SP_CONNECTION_STATE_UNDEFINED = 3,///<连接状态未定义

     

SP_CONNECTION_STATE_OFFLINE = 4 ///<以离线模式登录

当我启动没有互联网连接的应用程序时,我首先获得登录回调,说SP_ERROR_OK,然后我得到SP_CONNECTION_STATE_DISCONNECTED(已登录,但现已断开连接)

我预计SP_CONNECTION_STATE_OFFLINE(在离线模式下登录)未连接到互联网时。

但是现在正在工作"