【问题标题】:libspotify API: loading playlist container to get playlist metadata?libspotify API:加载播放列表容器以获取播放列表元数据?
【发布时间】:2012-06-21 16:41:25
【问题描述】:

我加载了播放列表容器,然后获取到每个播放列表的指针,并从播放列表指针 (sp_playlist *) 中获取每个播放列表的名称和 URI。但结果显示并非所有播放列表名称和 URI 都可以检索。播放列表容器提供哪些类型的播放列表元数据?

另外,播放列表是否存储在本地缓存中?我是否必须等待播放列表加载到缓存中?

谢谢。

【问题讨论】:

    标签: spotify


    【解决方案1】:

    播放列表容器不包含播放列表元数据——只有一个播放列表指针列表。您需要等待每个播放列表加载,然后才能使用其名称。另外,请注意播放列表容器中也会有文件夹标记,它们根本没有名称。您可以通过sp_playlistcontainer_playlist_type() 进行检查。

    播放列表确实存储在本地缓存中,只要您正确注销并在终止进程之前等待注销完成回调。

    【讨论】:

    • 我不明白 - 如果播放列表容器已加载且 sp_playlist * 可用,如何触发播放列表的“加载”或如何加载播放列表?难道不应该等待回调(metadata_updatedplaylist_state_changed)来检查“加载”吗?轨道的同样问题 - 是什么触发了要加载的轨道?我唯一知道的是注册他们的回调。我理解正确吗?谢谢。
    • 一旦你有了sp_playlist 对象,它就会开始自行加载。使用您提到的回调来查看它何时加载。 sp_track 也一样。
    • 我想我找到了原因。如果本地缓存为空,则加载播放列表的过程为:加载容器、添加播放列表、重命名播放列表。我认为加载播放列表时调用了播放列表回调“状态更改”而不是“重命名”。 API 文档有点混乱。
    • 我注意到,当调用“playlist_renamed”回调时,名称可用,但播放列表仍未加载。很奇怪,如果播放列表没有加载,怎么找回名字。
    • 而且,我不明白为什么示例“spshell”不必在检索播放列表名称之前检查播放列表是否已加载并且工作正常。我的代码与检索播放列表名称完全相同,但工作方式不同。
    猜你喜欢
    • 1970-01-01
    • 2014-10-28
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    相关资源
    最近更新 更多