возможна ошибка в кешировании портретных метаданных - PullRequest
0 голосов
/ 04 января 2012

Код для копирования

В моем приложении у меня есть следующий код.
var seed = "spotify:artist:3UbyYnvNIT5DFXU4WgiGpP";
  sp.core.getMetadata(seed, {
    onSuccess: function (metadata) {
      console.log(metadata);       
    },
    onFailure: function () {}
  });

Шаги для просмотра поведения

  1. Если spotify уже открыт, закройтезатем снова откройте его, после открытия spotify запустите приложение и просмотрите консоль, которая отображается как
Object
    name: "Whitesnake"
    portrait: ""
    type: "artist"
    uri: "spotify:artist:3UbyYnvNIT5DFXU4WgiGpP"
  __proto__: Object
  1. Затем нажмите на радио-приложение и создайте станцию ​​на основе группы Whitesnake.,
  2. Перезапустите исходное приложение и просмотрите вывод консоли, который будет отображаться.
Object
    name: "Whitesnake"
    portrait: "spotify:image:3c4aa30d845dd456d750cf16bef8e2cadb2af342"
    type: "artist"
    uri: "spotify:artist:3UbyYnvNIT5DFXU4WgiGpP"
  __proto__: Object
  1. Выйдите из spotify и повторно запустите исходное приложение и просмотрите консоль, которая будетdisplay
Object
    name: "Whitesnake"
    portrait: ""
    type: "artist"
    uri: "spotify:artist:3UbyYnvNIT5DFXU4WgiGpP"
  __proto__: Object

Вопрос

Почему приложение радио может получить доступ к портретному URI, которое затем доступно из моего приложения после использования приложения радио?Есть ли какая-то инициализация, которую нужно сделать сначала, или это ошибка?

Ответы [ 3 ]

1 голос
/ 04 января 2012

Некоторая информация об исполнителе (и альбоме и т. Д.) Недоступна до тех пор, пока вы не «просмотрите» этот URI - до этого Spotify загружает только базовую информацию об элементе, чтобы поддерживать производительность.

То, что вы видите, это радио, которое просматривает, что заставляет клиента Spotify заполнить недостающую информацию.

Скоро появится обновление для Spotify, которое улучшит это поведение.

1 голос
/ 05 января 2012

Как уже упоминал iKenndac, попробуйте выполнить «просмотр»:

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

Примеры здесь: https://github.com/ptrwtts/kitchensink

1 голос
/ 04 января 2012

Если я вас правильно понял, вы заметили, что после того, как вы получите результат с портретным 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"
...