Javascript 更改howler.js中的动态声音src有问题

Javascript 更改howler.js中的动态声音src有问题,javascript,debugging,onunload,howler.js,Javascript,Debugging,Onunload,Howler.js,我在页面上添加了一些按钮,当你点击每一个按钮时,它首先卸载嚎叫对象并改变src,然后播放新音乐。但问题是,在两次更改src之后,脚本第三次无法工作 以下代码的作用是什么: 对象如何创建嚎叫 当您点击任何具有.play btn的按钮时,每个按钮的源都会输入。_src声音并播放新音乐 <script> var musicSrc = ""; var sound = 0; var musicId= 0; var soundCurr

我在页面上添加了一些按钮,当你点击每一个按钮时,它首先卸载嚎叫对象并改变src,然后播放新音乐。但问题是,在两次更改src之后,脚本第三次无法工作

以下代码的作用是什么:

  • 对象如何创建嚎叫

  • 当您点击任何具有.play btn的按钮时,每个按钮的源都会输入。_src声音并播放新音乐

    <script>
         var musicSrc = "";
         var sound = 0;
         var musicId= 0;
         var soundCurrentTime ,soundTime = 0;
         var soundPercent = 0;
         var playInterval;
         sound = new Howl({
             src: '/uploads/tracks/'+$('.content > .music-list-player:first-of-type .play-btn').attr('track-file'),
             volume: 1,
             html5: true,
             xhr: {
                 method: 'POST',
             },
             format : 'mp3',
             onload: function () {
    
                 $('.player-container').removeClass('load-track'); //'Remove Music Loading Animation
                 soundTime = sound.duration(); //'Get Full Sound Time
                 soundPercent = (soundCurrentTime * 100)/soundTime; //'Get now Percent Played
                 $('.full-time#full-time').html(secondsToHms(soundTime)); //'Show Full Music Time in left Time Box
             },
             onplay:function () {
                 $('.player-container').removeClass('load-track'); //'Remove Music Loading Animation
                 playInterval= setInterval(playProgress,100);
                 $('.play-btn[playing="1"]').attr('player-target','pause');
             },
             onend: function () {
                 $('.play-btn[playing="1"]').attr('player-target','play'); //'Show Play Button
                 $('.player-progress-bar').css('width','0%'); //'Reset Progress Bar
                 $('.current-time').html("00:00"); //Set Current Time to 00:00
                 clearInterval(playInterval);
             },
             onpause: function () {
                 $('.player-container').removeClass('load-track'); //'Remove Music Loading Animation
                 $('#progress'+musicId+', #progress').css('width',soundPercent+'%');
                 $('.current-time').html('00:00');
                 $('.current-time#current-time , #current-time-'+musicId).html(secondsToHms(soundCurrentTime));
                 clearInterval(playInterval);
             },
             onloop: function () {
                 playInterval = setInterval(playProgress,100);
             }
         });
         $('.music-list-player .play-btn').on('click', function () { //'It happens by Click the list play Button
             $('.player-container').addClass('load-track');
             var playerBtnClass = '.'+this.className;
             var playingStatus = $(this).attr('player-target') == 'pause' ? playingStatus = 0 :  playingStatus = 1;
             musicId = this.id;
             musicSrc = $(this).attr('track-file');
             if (playingStatus){         //'Play btn is playing
                 if (sound._src !== '/uploads/tracks/'+musicSrc){ //'Music's changed
                     sound.stop();
                     sound.unload();
                     console.log(sound);
                     sound._src = '/uploads/tracks/'+musicSrc;
                     sound.load();
                     $('.player-progress-bar').css('width','0%'); //'Reset Progress Bar
                     $('.player-container').addClass('load-track'); //'add Music Loading Animation
                 }
                 $('.player-artist-name').html($(playerBtnClass+"#"+musicId+" + .artist-name ").html());
                 $('.player-music-name').html($(playerBtnClass+"#"+musicId+" + .artist-name + .music-name ").html());
                 $(this).attr('player-target','pause');
                 $(playerBtnClass+":not(#"+musicId+")").attr('player-target','play');
                 $('#play-btn').attr('player-target','pause');
                 sound.play();
    
             }
             else{                      //'Play btn is not playing
                 $(this).attr('player-target','play');
                 $('#play-btn').attr('player-target','play');
                 sound.pause();
             }
         });
    
    
    var=”;
    var sound=0;
    var musicId=0;
    var soundCurrentTime,soundTime=0;
    风险价值百分比=0;
    var播放间隔;
    声音=新的嚎叫({
    src:'/uploads/tracks/'+$('.content>.music list player:type.play btn').attr('track-file')的第一个类型,
    第1卷,
    html5:没错,
    xhr:{
    方法:“POST”,
    },
    格式:“mp3”,
    onload:function(){
    $('.player container').removeClass('load-track');/“删除音乐加载动画”
    soundTime=sound.duration();/“获取完整的声音时间”
    soundPercent=(soundCurrentTime*100)/soundTime;//“立即播放百分比”
    $('.full-time#full-time').html(secondsToHms(soundTime));/“在左侧时间框中显示完整的音乐时间”
    },
    onplay:function(){
    $('.player container').removeClass('load-track');/“删除音乐加载动画”
    播放间隔=设置间隔(播放进度,100);
    $('.play btn[playing=“1”]').attr('player-target','pause');
    },
    onend:function(){
    $('.play btn[playing=“1”]').attr('player-target','play');/'显示播放按钮
    $('.player进度条').css('width','0%');//'Reset进度条
    $('.current time').html(“00:00”);//将当前时间设置为00:00
    clearInterval(播放间隔);
    },
    onpause:function(){
    $('.player container').removeClass('load-track');/“删除音乐加载动画”
    $(“#progress”+musicId+”,#progress').css('width',soundPercent+'%');
    $('.current time').html('00:00');
    $('.current time#current time,#current time-'+musicId).html(secondsToHms(soundCurrentTime));
    clearInterval(播放间隔);
    },
    onloop:function(){
    播放间隔=设置间隔(播放进度,100);
    }
    });
    $('.music list player.play btn')。在('click',函数(){/'上,通过单击列表播放按钮进行操作
    $('.player container').addClass('load-track');
    var playerBtnClass='.'+this.className;
    var playingStatus=$(this).attr('player-target')=='pause'?playingStatus=0:playingStatus=1;
    musicId=this.id;
    musicSrc=$(this.attr('track-file');
    如果(播放状态){/'播放btn正在播放
    如果(声音._src!='/uploads/tracks/'+musicSrc){/'音乐已更改
    声音。停止();
    sound.unload();
    控制台。日志(声音);
    声音。_src='/uploads/tracks/'+musicSrc;
    sound.load();
    $('.player进度条').css('width','0%');//'Reset进度条
    $('.player container').addClass('load-track');/“添加音乐加载动画”
    }
    $('.player-artist-name').html($(playerBtnClass+“#”+musicId+“+.artist-name”).html();
    $('.player music name').html($(playerBtnClass+“#”+musicId+“+.artist name+.music name”).html();
    $(this.attr('player-target','pause');
    $(playerBtnClass+):not(#“+musicId+”).attr('player-target','play');
    $(“#播放btn”).attr('player-target','pause');
    声音。播放();
    }
    否则{/'播放btn未播放
    $(this.attr('player-target','play');
    $(“#播放btn”).attr('player-target','play');
    声音。暂停();
    }
    });