获取spotify播放列表内容的意外结果

时间:2012-03-27 10:19:57

标签: c# spotify

我需要使用播放列表的内容使数据库保持最新状态。

我在libspotify api中使用C#Wrapper - http://libspotify-sharp.hallerud.se/

目前我的工作流程如下

登录,等待播放列表容器加载,加载时监听加载播放列表的事件,当我感兴趣的播放列表被加载等待播放列表中的所有曲目加载时,然后将内容写入数据库。< / p>

每次程序启动时,我都会完全清除缓存目录。

我发现这个工作正常并且大部分时间都是预期的,然后当删除普通spotify客户端中的一些轨道时,即使它们不再存在,轨道仍然似乎被api返回(I我清除缓存目录所以它们必须是?)。

有谁知道这会导致什么?

更新

我发现API似乎将不同的信息返回给客户端中可查看的内容。我已经从不同的计算机运行控制台应用程序,并且仍然返回已删除的轨道。正常的spotify客户端不会显示这些,也会在多台计算机上进行测试。在我的应用程序中,我登录,等待播放列表完全加载然后退出,此应用程序是在计划任务。

更新2

我目前正在等待

(playlist.IsLoaded == true && 
playlist.CurrentTracks.All(x => x.IsLoaded && x.Artists.Count() > 0))

使用

session.OnMetaDataUpdated += HandleOnMetaUpdated;

playlist.OnMetadataUpdated += PlaylistMetaUpdated;

1 个答案:

答案 0 :(得分:2)

如果播放列表后端运行缓慢,则客户端进行的更改可能需要一段时间才能进入Spotify后端。只有当他们在后端时,这些变化才能归结为其他客户。