0

要复制的代码

在我的应用程序中,我有以下代码。

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?是否有某种初始化,需要先完成还是这是一个错误?

4

3 回答 3

1

如果我对您的理解正确,您已经注意到,在您从收音机获得带有肖像 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"
于 2012-01-04T14:21:22.477 回答
1

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

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

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

于 2012-01-04T15:36:54.440 回答
1

正如 iKendac 提到的,尝试做一个“浏览”:

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

这里的例子:https ://github.com/ptrwtts/kitchensink

于 2012-01-05T08:31:53.603 回答