温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

html5如何自定义audio

发布时间:2021-09-14 11:28:55 来源:亿速云 阅读:165 作者:小新 栏目:web开发

这篇文章给大家分享的是有关html5如何自定义audio的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

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 #f18900;   
    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就会变(电脑上不会),以后要注意。

感谢各位的阅读!关于“html5如何自定义audio”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI