There might be a race condition when setting the custom image using Image.setImage
.
A solution is to use the Image.fromSource
method:
require(['$api/models', '$views/image#Image'], function(models, Image) {
// Play a single track
var track = models.Track.fromURI('spotify:track:7B1Dl3tXqySkB8OPEwVvSu');
var image = Image.fromSource("/img/spotify-logo.png", {
playerItem: track,
player: true
});
// Pass the player HTML code to the #single-track-player div
document.getElementById('single-track-player')
.appendChild(image.node);
});