利用HTML5/JS有没有办法实现快速循环播放?

 我来答
石岩松i
2016-02-04 · 知道合伙人互联网行家
石岩松i
知道合伙人互联网行家
采纳数:307 获赞数:1070
毕业于郑大,从事网络多年,担任无所不在运营总监

向TA提问 私信TA
展开全部
<audio>的接口里有声音播放速度的接口,但是多浏览器支持没有做过测试,楼主小心使用。
myVid=document.getElementsByTag("audio");
myVid.playbackRate=4;//大于1,就是高速播放

当然,如果是声音里面有衰减或空白的部分,不想剪辑声音的话,可以用多个Audio同时循环播放,如下:
var audios=[];
for (var i= 0; i < 5; i++ ) {
var a = new Audio();
a.src = "" ;//填入你的音频地址
a.preload="auto";
a.loop = true;
audios.push(a) ;
}

// 调用下面函数之前需要先确定audio已经完全载入,可以通过audio的readystate接口进行判断。
//这里直接就写成立即执行的方式了。
(function playSingle(i){
//用递归写的,迭代也可行
if ( i > 0 ) {
audios[i-1].play() ;
setTimeout(function(){
playSingle(i-1) ;
},1000);//每隔1000毫秒,额外播放一个音频
}
})(audios.length) ;

最后共五个音频先后循环播放,各延迟1000毫秒。当然可以通过调节毫秒数来达到更好的效果。
你妹dBS4
2015-08-28 · 超过49用户采纳过TA的回答
知道答主
回答量:105
采纳率:0%
帮助的人:49.8万
展开全部
问题在于比如音频可能有100ms,但想1000ms内播放100次。所以单纯的遍历是不能解决问题的,而且在极快的情况下,js所需要的时间也会被考虑进去延缓频率。
可以试试多开几个音频,然后延时播放。比如说在10ms时播放第二个音频,20ms播放第三个...90ms播放最后一个,这样在100ms时第一个音频会再次循环,如此就可以达到10ms播放一次的频率。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式