Spotify API:不支持从临时播放列表创建单选按钮?

Spotify API:不支持从临时播放列表创建单选按钮?,spotify,spotify-app,Spotify,Spotify App,我正在构建一个应用程序,它正在生成一个临时的曲目播放列表。然后我尝试为临时播放列表创建一个“开始单选”按钮 该按钮已生成,但当我单击它时,屏幕将变为radio,但不播放也不加载任何电台 我猜这是不受支持的,因为如果我创建一个常规播放列表并执行此操作,它会播放收音机 但我在API中找不到任何证实或否认我猜测的信息 是否有人确切知道这是否不受支持 我真的宁愿从临时播放列表中执行此操作,也不必维护真正的播放列表…你说得对。不支持临时播放列表。不幸的是,文档中没有提到这一点 似乎无法将附加到临时播放列表

我正在构建一个应用程序,它正在生成一个临时的曲目播放列表。然后我尝试为临时播放列表创建一个“开始单选”按钮

该按钮已生成,但当我单击它时,屏幕将变为radio,但不播放也不加载任何电台

我猜这是不受支持的,因为如果我创建一个常规播放列表并执行此操作,它会播放收音机

但我在API中找不到任何证实或否认我猜测的信息

是否有人确切知道这是否不受支持

我真的宁愿从临时播放列表中执行此操作,也不必维护真正的播放列表…

你说得对。不支持临时播放列表。不幸的是,文档中没有提到这一点

似乎无法将附加到临时播放列表的曲目数据传递到收音机应用程序,因此收音机应用程序加载时没有上下文信息

实现这一点的唯一方法是,正如您所说的,创建一个持久的播放列表并为此创建一个单选按钮。为了避免每次都创建新的播放列表,您也可以尝试在用户库中查找以前创建的播放列表

请参阅以下代码片段:

require(['$api/models', '$api/library#Library', '$views/buttons#StartRadioButton'],
  function(models, Library, StartRadioButton) {

  // create a temporary playlist with some tracks
  var playlistName = 'Some name';

  models.Playlist.create(playlistName).done(function(playlist) {
    playlist.load('tracks').done(function(loadedPlaylist) {
      var track1 = models.Track.fromURI('spotify:track:5EB60KIbYgL8nWrHoYbfv4');
      var track2 = models.Track.fromURI('spotify:track:7GPuYTiBA5BloBnFaQBjbw');
      loadedPlaylist.tracks.add(track1);
      loadedPlaylist.tracks.add(track2);

      // now we can add a button to start a radio base on the newly
      // created playlist
      var button = StartRadioButton.forPlaylist(loadedPlaylist);
      document.body.appendChild(button.node);

      // bonus: we can also search for the playlist in the user's library
      // so we don't have to create a new one all the time.
      // this will work as long as we can find the playlist we created by name
      // (i.e. it hasn't been renamed).
      var currentLibrary = Library.forCurrentUser();
        console.log(currentLibrary);
        currentLibrary.playlists.snapshot().done(function(p) {
          for (var i = 0; i < p.length; i++) {
            var playlistFromLibrary = p.get(i);
            if (playlistFromLibrary && playlistFromLibrary.name == playlistName) {
              var button = StartRadioButton.forPlaylist(playlistFromLibrary);
              document.body.appendChild(button.node);
            }
          }
        });
      });
  });
});
require(['$api/models','$api/library#library','$views/buttons#StartRadioButton'],
功能(型号、库、开始按钮){
//创建包含一些曲目的临时播放列表
var playlame='某个名称';
型号。播放列表。创建(播放名称)。完成(功能(播放列表){
playlist.load('tracks').done(函数loadedPlaylist){
var track1=models.Track.fromURI('spotify:Track:5EB60KIbYgL8nWrHoYbfv4');
var track2=models.Track.fromURI('spotify:Track:7GPuYTiBA5BloBnFaQBjbw');
loadedPlaylist.tracks.add(track1);
loadedPlaylist.tracks.add(track2);
//现在,我们可以添加一个按钮,在新的
//创建的播放列表
var按钮=StartRadioButton.forPlaylist(加载的播放列表);
document.body.appendChild(按钮.节点);
//另外,我们还可以在用户的库中搜索播放列表
//所以我们不必一直创建一个新的。
//只要我们能找到我们按名称创建的播放列表,这就行了
//(即,它尚未重命名)。
var currentLibrary=Library.forCurrentUser();
console.log(currentLibrary);
currentLibrary.playlists.snapshot().done(函数(p){
对于(变量i=0;i
嘿,谢谢这太完美了!我试图通过要求他们向其中一个播放列表提交URI来解决这个问题,因为我找不到任何方法按名称搜索该用户的播放列表。但这应该能奏效!!谢谢欢迎你@Josh。使用名称搜索播放列表不是最可靠的方法,但它是迄今为止最好的选择。祝你好运