js如何获取audio标签的音乐缓存进度?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js如何获取audio标签的音乐缓存进度?相关的知识,希望对你有一定的参考价值。

使用audio的buffered属性,该属性返回表示音频已缓冲部分的 TimeRanges 对象。

这里假定_audio为所获取的audio标签,实现代码如下:

 

 // 获取已缓冲部分的 TimeRanges 对象
var timeRanges = _audio.buffered;
 // 获取以缓存的时间
var timeBuffered = timeRages.end(timeRages.length - 1);
 // 获取缓存进度,值为0到1
var bufferPercent = timeBuffered / _audio.duration; 
// ...... 
// 之后将bufferPercent按照自己需要的方式进行处理即可
// 处理的时候要注意浮点数精度造成的误差。

参考技术A 使用audio的buffered属性,该属性返回表示音频已缓冲部分的 TimeRanges 对象。
这里假定_audio为所获取的audio标签,实现代码如下:

// 获取已缓冲部分的 TimeRanges 对象
var timeRanges = _audio.buffered;
// 获取以缓存的时间
var timeBuffered = timeRages.end(timeRages.length - 1);
// 获取缓存进度,值为0到1
var bufferPercent = timeBuffered / _audio.duration;
// ......
// 之后将bufferPercent按照自己需要的方式进行处理即可
// 处理的时候要注意浮点数精度造成的误差。

ios设置音乐audio自动播放

因为audio标签的自动播放:autoplay。在ios系统中不能自动播放,此时需要设置,在进入页面自动播放音乐。

第一步,先引入js微信

<script src="js/jweixin-1.2.0.js?ver=222"></script> 

 第二步,在wx.ready中进行默认播放,这个时候wx.config配置可以不用正确,但是后边的ready也可以用,所以默认播放了。

//ios中音乐默认不能播放,配置在wx.ready中进行默认播放,
	function audioPlay() {
		wx.config({
			debug: false, // 开启调试模式
			appId: ‘‘, // 必填,公众号的唯一标识
			timestamp: 1, // 必填,生成签名的时间戳
			nonceStr: ‘‘, // 必填,生成签名的随机串
			signature: ‘‘, // 必填,签名,
			jsApiList: [] // 必填,需要使用的JS接口列表,
		});
		wx.ready(function() {
			var audio = document.getElementById("mp3Btn");
			audio.play();
		});					
	}
	audioPlay();

  

以上是关于js如何获取audio标签的音乐缓存进度?的主要内容,如果未能解决你的问题,请参考以下文章

自定义audio样式做音乐播放器

基于Jquery的音乐播放器进度条插件

js一加载网页就自动播放

js如何获取缓存

audio标签+JS实现音乐播放和暂停的功能

audio缓存问题