我需要使用播放列表的内容使数据库保持最新状态。
我在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;
答案 0 :(得分:2)
如果播放列表后端运行缓慢,则客户端进行的更改可能需要一段时间才能进入Spotify后端。只有当他们在后端时,这些变化才能归结为其他客户。