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

查看:152
本文介绍了javascript - 关于用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) + '%');
}

这篇关于javascript - 关于用JS获取audio的加载时间问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆