gpt4 book ai didi

javascript - Spotify:如何防止它记住听过超过一首歌曲?

转载 作者:行者123 更新时间:2023-11-28 21:05:15 26 4
gpt4 key购买 nike

我正在为 Spotify 制作一个应用程序。通过这个应用程序,我有一个简单的“订阅”功能,它允许我从用户正在收听的当前轨道添加专辑的播放列表。一切正常。不过我有这个错误。听完一首以上歌曲后,当我按下订阅按钮时,它会为每首听过的歌曲附加一个播放列表。

例如:我听了专辑中的 3 首歌曲,然后我按订阅:它会附加 3 个播放列表,每首歌一个。然后:如果我随后收听不同专辑中的歌曲,当按下“订阅”时,它将附加新歌曲和前 3 首歌曲的播放列表。这种情况一直发生,直到我重新加载应用程序。

它似乎会记住加载应用程序后听过的每首歌曲。

这是我的代码:

函数订阅(){

//Cache important information
var playerTrackInfo = player.track;
var track = playerTrackInfo.data;
var albumUri = track.album.uri;
var albumTitle = track.album.name;
var artistFromAlbum = track.album.artist.name;

//Click event on button
$(".subscribe button").on("click", function(playlist){
console.log("I work!"); //Checks if button click works

//Creates new playlist "Albumtitle - Artistname"
var playlist = new models.Playlist(albumTitle+" - "+artistFromAlbum);

//Fills in playlist with album from current playing track
models.Album.fromURI(albumUri, function(album){
$(album.tracks).each(function(i) {
playlist.add(album.tracks[i]);
});
});

playlist.subscribed = true;

playlist.observe(models.EVENT.CHANGE, function() {
console.log("Playlist was subscribed!");
});
});

}

我需要一种方法来防止这个问题。我尝试了很多不同的方法并无休止地搜索网络,但到目前为止还没有运气。任何帮助或指向正确的方向都会很棒!

最佳答案

我已经解决了这个问题。

有两件事导致了该错误。这是解决方案:

  1. 我将所有变量都放置在点击事件中。

  2. 我在代码中的其他地方有一个事件监听器,这使得它也出现错误。该事件监听器检测玩家状态是否已更改,如果为 true 它将刷新 init。然而,它显然将变量堆叠在我的 subscribe() 中。将其从事件监听器中取出并替换变量后,它终于按照预期的方式工作了。

    function subscribe(){

    //Click event on button within div with class 'subscribe'
    $(".subscribe button").on("click", function(playlist){
    console.log("I work!"); //Checks if button click works

    //Cache important information
    var playerTrackInfo = player.track;
    var track = playerTrackInfo.data;
    var albumUri = track.album.uri;

    //Creates new playlist "Albumtitle - Artistname"
    var albumTitle = track.album.name;
    var artistFromAlbum = track.album.artist.name;
    var playlist = new models.Playlist(albumTitle +" - "+ artistFromAlbum);

    //Fills in playlist with album from current playing track
    models.Album.fromURI(albumUri, function(album){
    $(album.tracks).each(function(i) {
    playlist.add(album.tracks[i]);
    });
    });

    playlist.subscribed = true;

    playlist.observe(models.EVENT.CHANGE, function() {
    console.log("Playlist was subscribed!");
    });

    });}

感谢您帮助人们!

关于javascript - Spotify:如何防止它记住听过超过一首歌曲?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10050166/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com