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 #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); });
위 내용은 기본적으로 맞춤형 오디오 재생을 구현할 수 있지만 진행률 표시줄을 드래그할 때 문제가 있습니다. 컴퓨터에서는 괜찮지만 휴대폰에서는 드래그할 수 있지만 전체 재생 시간이 오디오가 일반 재생보다 적습니다. 몇 분이 소요되어 진행률을 드래그한 후 재생이 부정확해졌습니다. 테스트 결과, 휴대폰에서 얻은 지속 시간(총 지속 시간)이 컴퓨터에서 얻은 것과 다르기 때문에 슬라이딩 후 재생 위치가 부정확한 것으로 나타났습니다. 업로드한 오디오는 제가 압축한 것이기 때문에 휴대폰에 걸리는 시간이 일반 오디오와 다르다는 것을 알게 되었습니다. 따라서 오디오를 압축한 후에는 (컴퓨터가 아닌) 휴대폰에서 그 지속 시간이 변경되므로 앞으로는 주의를 기울여야 합니다. 오디오를 압축하여 휴대폰에서 정상적인 지속 시간을 얻을 수 있는 방법이 있다면 알려주세요, 하하.
h5 커스텀 오디오에 대한 간략한 토론(문제 및 해결 방법)은 모두 편집자가 공유한 내용입니다. 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트(www.php.cn)를 주목하세요!