首页 > 关于用JS获取audio的加载时间问题

关于用JS获取audio的加载时间问题

自己用JS编写了一个audio的音乐播放器
不知道用JS怎样来获取audio音乐已经缓存到了多少秒 或是说已经缓存了百分之多少

在网上找的都是这样的:

// 获取已缓冲部分的 TimeRanges 对象
var timeRanges = _audio.buffered;
// 获取以缓存的时间
var timeBuffered = timeRages.end(timeRages.length - 1);
// 获取缓存进度,值为0到1
var bufferPercent = timeBuffered / _audio.duration; 

但我试了 根本就不行啊
代码有问题 js无法执行
不知道是哪出了问题


var buffered, percent;
// 已缓冲部分
audio.readyState == 4 && (buffered = audio.buffered.end(0));
// 已缓冲百分百
audio.readyState == 4 && (percent = Math.round(buffered / audio.duration * 100) + '%');

audio.buffered.end 必须在 audio 对象获取到信息时才可以使用

使用 chrome 在 http://music.163.com/ 下的 console 面板输入以下代码试试:

var audio = new Audio('http://124.14.17.172/m10.music.126.net/20160813225417/5c28eab96709119d9acfaa80a93c5365/ymusic/50c1/a8fd/3847/4d6d8d45a3f2935d48e24a0fe6a89308.mp3?wshc_tag=0&wsts_tag=57af2ebd&wsid_tag=d3a1f9e4&wsiphost=ipdbm');
audio.play();
audio.ontimeupdate = () => {
    audio.readyState == 4 && console.warn('正在缓冲:' + Math.round(audio.buffered.end(0) / audio.duration * 100) + '%');
}
【热门文章】
【热门文章】