Javascript 更改howler.js中的动态声音src有问题
我在页面上添加了一些按钮,当你点击每一个按钮时,它首先卸载嚎叫对象并改变src,然后播放新音乐。但问题是,在两次更改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
<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');
声音。暂停();
}
});