H5音频

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

html

1 <!-- cur表示当前时间 max表示总时长 input表示进度条 -->

2 <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 #f18900;

    cursor: pointer;

    border-radius: 0.25rem;

    -webkit-appearance: none !important;

}

js

 1 //将秒数转为00:00格式

 2 function timeToStr(time) {

 3     var m = 0,

 4     s = 0,

 5     _m = '00',

 6     _s = '00';

 7     time = Math.floor(time % 3600);

 8     m = Math.floor(time / 60);

 9     s = Math.floor(time % 60);

10     _s = s < 10 ? '0' + s : s + '';

11     _m = m < 10 ? '0' + m : m + '';

12     return _m + ":" + _s;

13 }

14 //触发播放事件

15 $('.play').on('click',function(){

16     var audio=document.getElementById('ao');

17     audio.play();

18     setInterval(function(){

19         var t=parseInt(audio.currentTime);

20     $(".range").attr({'max':751});

21     $('.max').html(timeToStr(751));

22         $(".range").val(t);

23     $('.cur').text(timeToStr(t));

24     },1000);

25 });

26 //监听滑块,可以拖动

27 $(".range").on('change',function(){

28     document.getElementById('ao').currentTime=this.value;$(".range").val(this.value);
29 });

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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值