当播放文件作为循环时,仍然有一个"音频空白"在结束和开始之间。 我怎么能避免这个?为了获得连续的声音。感谢
答案 0 :(得分:2)
https://jsfiddle.net/0xkt1uto/1/
当第一个> 98%完成时,第二个将开始。
当第二个> 98%完成时,第一个将开始。
当他们结束时,他们将重置为0,为下一场比赛做好准备。
守则:
<audio id="aud1" controls>
<source src="http://www.noiseaddicts.com/samples_1w72b820/4205.mp3" type="audio/ogg">
</audio>
<audio id="aud2" controls>
<source src="http://www.noiseaddicts.com/samples_1w72b820/4205.mp3" type="audio/ogg">
</audio>
var aud1 = $('#aud1').get(0);
var aud2 = $('#aud2').get(0);
aud1.play();
$(aud1).on('timeupdate', function(){
if((this.currentTime/this.duration)*100 > 98){
aud2.play();
}
});
$(aud2).on('timeupdate', function(){
if((this.currentTime/this.duration)*100 > 98){
aud1.play();
}
});
$(aud1).on('ended', function(){
this.currentTime = 0;
});
$(aud2).on('ended', function(){
this.currentTime = 0;
});
答案 1 :(得分:0)
<audio>
乒乓球技术通常有效,但有时不起作用,具体取决于机器的速度,以及页面的其余部分。
使用Web Audio API更加强大。考虑到您已使用(例如)和XMLHttpRequest
将ArrayBuffer
下载的音频文件下载到buf
var ac = new AudioContext();
ac.decodeAudioData(b).then(function(decoded) {
var source = new AudioBufferSourceNode(ac, {buffer: decoded,
loop: true});
source.connect(ac.destination);
source.start();
// source.stop(); // to stop;
}).catch(function(e) {
// error ?
});
:
{{1}}