【问题标题】:possible spotify portrait metadata caching bug可能的 spotify 肖像元数据缓存错误
【发布时间】:2012-01-04 07:31:45
【问题描述】:

要复制的代码

在我的应用程序中,我有以下代码。 var seed = "spotify:artist:3UbyYnvNIT5DFXU4WgiGpP"; sp.core.getMetadata(种子,{ onSuccess:函数(元数据){ 控制台.log(元数据); }, onFailure: 函数 () {} });

查看行为的步骤

  1. 如果 spotify 已经打开,请将其关闭然后重新打开,在打开 spotify 后运行应用程序并查看显示为的控制台
目的 名称:《白蛇》 肖像: ”” 类型:“艺术家” uri:“spotify:艺术家:3UbyYnvNIT5DFXU4WgiGpP” __proto__: 对象
  1. 然后单击广播应用程序并根据 Whitesnake 乐队创建一个电台。
  2. 重新运行原始应用程序并查看将显示的控制台输出。
目的 名称:《白蛇》 肖像:“Spotify:图像:3c4aa30d845dd456d750cf16bef8e2cadb2af342” 类型:“艺术家” uri:“spotify:艺术家:3UbyYnvNIT5DFXU4WgiGpP” __proto__: 对象
  1. 退出Spotify并重新运行原始应用程序并查看将显示的控制台
目的 名称:《白蛇》 肖像: ”” 类型:“艺术家” uri:“spotify:艺术家:3UbyYnvNIT5DFXU4WgiGpP” __proto__: 对象

问题

为什么收音机应用程序能够访问一个肖像 uri,然后在使用收音机应用程序后可以从我的应用程序访问该 uri?是否有某种初始化,需要先完成还是这是一个错误?

【问题讨论】:

    标签: spotify


    【解决方案1】:

    在您对该 URI 进行“浏览”之前,有关艺术家(和专辑等)的某些信息不可用 - 在那之前,Spotify 只会下载项目的基本信息以保持性能。

    您看到的是 Radio 正在浏览,这会导致 Spotify 客户端填写缺失的信息。

    即将对 Spotify 进行更新,以改善这种行为。

    【讨论】:

    • iKenndac,这个“浏览”功能会扩展到播放列表吗?我遇到了播放列表不会返回订阅者数据的问题,除非我手动查看播放列表
    • iKendac。这是否意味着 sp_artist_portrait 在加载该艺术家的浏览之前不会返回图像。当 sp_artist_browse 有它自己的返回肖像的函数时,如果没有目的,有这样的函数似乎有点奇怪。我在 cocoalibspotify 中看到,你也没有在那里实现它,这是否意味着它根本不起作用?
    • 抱歉。这个问题与 libspotify 无关。请原谅我断章取义。
    【解决方案2】:

    如果我对您的理解正确,您已经注意到,在您从收音机中获得带有纵向 URI 的结果后,您会在应用程序中使用它时填充该对象数据?

    另一方面;你应该使用 Artist 类而不是 sp.core。

    var sp = getSpotifyApi(1);
    var models = sp.require('sp://import/scripts/api/models');
    models.Artist.fromURI("spotify:artist:3UbyYnvNIT5DFXU4WgiGpP", function(album) {
        console.log(album);
    });
    

    这应该会为您提供带有纵向 uri 字符串的正确输出。

    Artist
        data: Object
        name: "Whitesnake"
        portrait: "spotify:image:3c4aa30d845dd456d750cf16bef8e2cadb2af342"
        type: "artist"
        uri: "spotify:artist:3UbyYnvNIT5DFXU4WgiGpP"
    

    【讨论】:

    • 你的理解是正确的。当我退出 spotify 时,重新打开它并只运行您的代码 sn-p 我得到与上面描述的相同的行为。
    【解决方案3】:

    正如 iKendac 所说,尝试进行“浏览”:

    var seed = "spotify:artist:3UbyYnvNIT5DFXU4WgiGpP";
    sp.core.browseUri(seed, {  
        onSuccess: function (metadata) {
            console.log(metadata);       
        },
        onFailure: function () {}
    });
    

    此处的示例:https://github.com/ptrwtts/kitchensink

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-18
      • 2013-04-21
      • 1970-01-01
      • 1970-01-01
      • 2020-08-05
      相关资源
      最近更新 更多