视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
h5自定义audio的解析
2020-11-27 15:05:22 责编:小OO
文档


下面为大家带来一篇浅谈h5自定义audio(问题及解决)。内容挺不错的,现在就分享给大家,也给大家做个参考。

h5活动需要插入音频,但又需要自定义样式,于是自己写咯

html

<!-- cur表示当前时间 max表示总时长 input表示进度条 -->
<span class='cur'></span><input type="range" min=0 max=100 class='range' value=0><span class='max'></span>

css

/* 进度条 */
.range { 
 width: 5.875rem; 
 height: 0.15rem; 
 background: #2386e4; 
 border-radius: 0.25rem; 
 -webkit-appearance: none !important; 
 position: absolute; 
 top: 3.55rem; 
 left: 6rem; 
} 
/* 进度滑块 */
.range::-webkit-slider-thumb { 
 width: 0.5rem; 
 height: 0.5rem; 
 background: #fff; 
 border: 1px solid #f100; 
 cursor: pointer; 
 border-radius: 0.25rem; 
 -webkit-appearance: none !important; 
}

js

//将秒数转为00:00格式 
function timeToStr(time) { 
 var m = 0, 
 s = 0, 
 _m = '00', 
 _s = '00'; 
 time = Math.floor(time % 3600); 
 m = Math.floor(time / 60); 
 s = Math.floor(time % 60); 
 _s = s < 10 ? '0' + s : s + ''; 
 _m = m < 10 ? '0' + m : m + ''; 
 return _m + ":" + _s; 
} 
//触发播放事件 
$('.play').on('click',function(){ 
 var audio=document.getElementById('ao'); 
 audio.play(); 
 setInterval(function(){ 
 var t=parseInt(audio.currentTime); 
 $(".range").attr({'max':751}); 
 $('.max').html(timeToStr(751)); 
 $(".range").val(t); 
 $('.cur').text(timeToStr(t)); 
 },1000); 
}); 
//监听滑块,可以拖动 
$(".range").on('change',function(){ 
 document.getElementById('ao').currentTime=this.value;$(".range").val(this.value); 
});

以上基本可以实现自定义音频播放,但是在拖动进度条的时候出现了问题,电脑上是ok的,但是在手机上可以拖动,只不过音频的总时长比正常播放少了好几分钟,导致拖动进度后播放不准确。通过测试发现手机上拿到的duration(总时长)跟电脑上不一样,导致滑动后播放位置不准确。究其原因发现因为上传的音频被我压缩了,所以在手机上拿到的duration就跟正常的不一样。所以音频经过压缩后在手机上其duration就会变(电脑上不会),以后要注意。如果有什么既可以压缩音频也可以在手机上拿到正常duration的方法,麻烦告知小弟,哈哈。

下载本文
显示全文
专题