自己用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) + '%');
}