CocoaLibSpotify会在login时将离线可用曲目重置为SP_TRACK_OFFLINE_WAITING

尝试保存我的播放列表以供离线使用时,我遇到了CocoaLibSpotify问题。

因此,我安装我的应用程序,第一次login,select一个播放列表,并将其设置为脱机使用,立即其offlineStatus更改为SP_PLAYLIST_OFFLINE_STATUS_DOWNLOADING,播放列表中的所有曲目都将其offlineStatus更改为SP_TRACK_OFFLINE_WAITING,他们开始一次下载一个并最终将其offlineStatus更改为SP_TRACK_OFFLINE_DONE。 我关掉了我的wifi,我可以离线播放下载的曲目。

当我closures应用程序并重新login时,以前可用的离线状态现在已将其offlineStatus更改为SP_TRACK_OFFLINE_WAITING,并且不能再离线播放。 CocoaLibSpotify存储下载的播放列表在NSCachesDirectory中,如果我检查文件夹,我看到内容没有改变,轨道数据仍然存在。

另一个奇怪的事情,我假设,即使在在线模式下,如果离线可用,CocoaLibSpotify将从设备播放下载的音轨。 如果我打开wifi,并开始播放这些以前下载的SP_TRACK_OFFLINE_WAITING音轨,然后快速closureswifi,它仍然继续播放整个音轨。

所以从外观来看,我假设曲目仍然保持离线状态,但由于某种原因,他们的offlineStatus在login时得到了错误的状态。而且会话由于其离线状态而拒绝开始播放曲目。

但是,如何避免离线状态重置的轨道,或者至less在我知道轨道已经下载的时候纠正这个问题。 我试过手动设置offlineStatus到SP_TRACK_OFFLINE_DONE,但是没有奏效。 我希望有人能够对此有所了解。

提前致谢。

手动设置属性不会影响除您的用户界面之外的任何内容。

有几件事要检查:

  • 当您退出应用程序时,请确保您注销( [SPSession -logOut] )并等到注销完成后再让应用程序死掉,否则可能会损坏caching。

  • 当您再次login时,您是使用CocoaLibSpotify保存的凭据还是再次手动input密码? 如果是后者,它将不起作用,因为库不能联系Spotify服务来validation凭据。 使用CocoaLibSpotify的内置凭据保存没有这个问题。