有人在这里问同样的问题。iKendac 回答它。但我需要更多详细信息,但我找不到向问题添加评论的方法,所以我在这里创建了一个新问题。
我希望能够控制Spotify播放的曲目。所以我想禁用上一个和下一个按钮。
似乎解决方案是在不向播放器提供上下文的情况下播放曲目。我做到了,但下一个/上一个没有被禁用。Spotify 作为当前上下文是我加星标的播放列表。
这是一些代码
var sp = getSpotifyApi(1);
var models = sp.require('sp://import/scripts/api/models');
var player = models.player;
var pl_starred = models.library.starredPlaylist;
exports.init = init;
function init() {
var header = document.getElementById("header");
var index = Math.floor(Math.random()*pl_starred.length)
var track = pl_starred.get(index);
if (pl_starred == null) {
header.innerText = "starred not found";
} else if (track == null) {
header.innerHTML = "cannot get track from starred";
} else {
header.innerHTML = "starred " + index + "/" + pl_starred.length + " : " + track.name;
}
player.play(track,null);
}
编辑:在 iKenndac 的回答之后进行了一些新的测试
我尝试将曲目与其上下文分开,但它不起作用。所以我尝试使用硬编码的 URI 加载曲目。所以我没有加载加星标的播放列表。但它也没有工作
这是我的代码
function init() {
var header = document.getElementById("header");
var player = models.player;
models.Track.fromURI("spotify:track:3ZfW4Z3MEvd82pv5J0rN2l", function(trackNotInStarred) {
console.log("Track loaded", trackNotInStarred.name);
player.play(trackNotInStarred, null);
header.innerHTML = "starred: " + trackNotInStarred.name;
});
}
新编辑:实际上上一个/下一个按钮没有被禁用,但是如果我单击上一个它会重新启动轨道,然后它会跳转到“无轨道”状态,然后上一个/播放/下一个被禁用。有任何想法吗 ?