Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Spotify:如何防止它只听一首歌?_Javascript_Api_Spotify_Playlist - Fatal编程技术网

Javascript Spotify:如何防止它只听一首歌?

Javascript Spotify:如何防止它只听一首歌?,javascript,api,spotify,playlist,Javascript,Api,Spotify,Playlist,我正在申请Spotify。使用这个应用程序,我有一个简单的“订阅”功能,允许我从用户正在收听的当前曲目中添加相册的播放列表。一切正常。不过我有这个错误。 在听了一首以上的歌曲后,当我按下“订阅”按钮时,它会为听的每首歌曲添加一个播放列表 例如:我听了专辑中的3首歌,然后按subscribed:它会为每首歌添加3个播放列表。 然后:如果我接着听另一张专辑中的歌曲,当按下Subscribe时,它会为新歌和前3首歌添加播放列表。这种情况一直发生,直到我重新加载应用程序 它似乎记得加载应用程序后听的每首

我正在申请Spotify。使用这个应用程序,我有一个简单的“订阅”功能,允许我从用户正在收听的当前曲目中添加相册的播放列表。一切正常。不过我有这个错误。 在听了一首以上的歌曲后,当我按下“订阅”按钮时,它会为听的每首歌曲添加一个播放列表

例如:我听了专辑中的3首歌,然后按subscribed:它会为每首歌添加3个播放列表。 然后:如果我接着听另一张专辑中的歌曲,当按下Subscribe时,它会为新歌和前3首歌添加播放列表。这种情况一直发生,直到我重新加载应用程序

它似乎记得加载应用程序后听的每首歌

这是我的代码:

函数subscribe(){

}


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

好吧,它每次都会制作一个全新的播放列表,因为你每次点击都会这样做:

var playlist=新型号。播放列表(albumTitle+“-”+artistFromAlbum)

那一行中的
新的
真的意味着它;-)


如果要多次单击使用同一播放列表,请将创建的播放列表存储在某个变量中,以便以后再次访问。不幸的是,目前无法查看用户拥有的播放列表。

好吧,它每次都会创建一个全新的播放列表,因为您每次单击都会这样做:

var playlist=新型号。播放列表(albumTitle+“-”+artistFromAlbum)

那一行中的
新的
真的意味着它;-)


如果要多次单击使用同一播放列表,请将创建的播放列表存储在某个变量中,以便以后再次访问。不幸的是,目前无法查看用户拥有的播放列表。

我已经解决了这个问题

有两件事导致了这个错误。这就是解决办法:

  • 我把所有变量都放在click事件中

  • 我在代码中的其他地方有一个eventListener,这使得它也有bug。eventlistener检测到他们的播放器状态是否已更改,如果为true,则将刷新初始化。但是,它显然将变量堆积在我的subscribe()中。在将其从eventListener中取出并替换了变量之后,它终于可以按照预期的方式工作了

    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!");
    });
    
    })); }


  • 谢谢你帮助人们

    我已经解决了这个问题

    有两件事导致了这个错误。这就是解决办法:

  • 我把所有变量都放在click事件中

  • 我在代码中的其他地方有一个eventListener,这使得它也有bug。eventlistener检测到他们的播放器状态是否已更改,如果为true,则将刷新初始化。但是,它显然将变量堆积在我的subscribe()中。在将其从eventListener中取出并替换了变量之后,它终于可以按照预期的方式工作了

    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!");
    });
    
    })); }


  • 谢谢你帮助人们

    我想我对我的问题还不够明确。我编辑了我的描述,希望能更清楚地说明发生了什么。我还尝试使用变量和数组来存储附加的播放列表。为一个简单的函数获取大量代码,但问题仍然没有解决。有什么想法吗?我想我对我的问题还不够明确。我编辑了我的描述,希望能更清楚地说明发生了什么。我还尝试使用变量和数组来存储附加的播放列表。为一个简单的函数获取大量代码,但问题仍然没有解决。有什么想法吗?