浅谈h5自定义audio(问题及解决)


Posted in HTML / CSS onAugust 19, 2016

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

html

XML/HTML Code复制内容到剪贴板
  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

CSS Code复制内容到剪贴板
  1. /* 进度条 */  
  2. .range {   
  3.     width: 5.875rem;   
  4.     height: 0.15rem;   
  5.     background#2386e4;   
  6.     border-radius: 0.25rem;   
  7.     -webkit-appearance: none !important;   
  8.     positionabsolute;   
  9.     top: 3.55rem;   
  10.     left: 6rem;    
  11. }   
  12. /* 进度滑块 */  
  13. .range::-webkit-slider-thumb {   
  14.     width: 0.5rem;   
  15.     height: 0.5rem;   
  16.     background#fff;   
  17.     border1px solid #f18900;   
  18.     cursorpointer;   
  19.     border-radius: 0.25rem;   
  20.     -webkit-appearance: none !important;   
  21. }  

js

JavaScript Code复制内容到剪贴板
  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就会变(电脑上不会),以后要注意。如果有什么既可以压缩音频也可以在手机上拿到正常duration的方法,麻烦告知小弟,哈哈。

关于这篇浅谈h5自定义audio(问题及解决)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
CSS3 简写animation
May 10 HTML / CSS
CSS 3.0 结合video视频实现的创意开幕效果
Jun 01 HTML / CSS
html5 web本地存储将取代我们的cookie
Dec 26 HTML / CSS
HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用
Jan 30 HTML / CSS
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
Apr 24 HTML / CSS
HTML5中如何显示视频呢 HTML5视频播放demo
Jun 08 HTML / CSS
用html5实现语音搜索框的方法
Mar 18 HTML / CSS
HTML5 weui使用笔记
Nov 21 HTML / CSS
用canvas显示验证码的实现
Apr 10 HTML / CSS
iframe与window.onload如何使用详解
May 07 HTML / CSS
HTML+CSS+JS实现图片的瀑布流布局的示例代码
Apr 22 HTML / CSS
CSS使用SVG实现动态分布的圆环发散路径动画
Dec 24 HTML / CSS
巧用HTML5给按钮背景设计不同的动画简单实例
Aug 09 #HTML / CSS
HTML5中判断横屏竖屏的方法(移动端)
Aug 04 #HTML / CSS
Html5元素及基本语法详解
Aug 02 #HTML / CSS
Html5 web本地存储实例详解
Jul 28 #HTML / CSS
浅谈Html5中视频 音频标签 进度条的问题
Jul 26 #HTML / CSS
html5 初试 indexedDB(推荐)
Jul 21 #HTML / CSS
浅谈HTML5 &amp; CSS3的新交互特性
Jul 19 #HTML / CSS
You might like
php数组删除元素示例
2014/03/21 PHP
PHP多线程类及用法实例
2014/12/03 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
用javascript动态调整iframe高度的代码
2007/04/10 Javascript
js实现运动logo图片效果及运动元素对象sportBox使用方法
2012/12/25 Javascript
js弹出确认是否删除对话框
2014/03/27 Javascript
使用js Math.random()函数生成n到m间的随机数字
2014/10/09 Javascript
页面内容排序插件jSort使用方法
2015/10/10 Javascript
JavaScript+html5 canvas制作的圆中圆效果实例
2016/01/27 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
面试常见的js算法题
2017/03/23 Javascript
基于vue-simplemde实现图片拖拽、粘贴功能
2018/04/12 Javascript
vue下history模式刷新后404错误解决方法
2018/08/18 Javascript
Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
2018/09/15 Javascript
浅谈让你的代码更简短,更整洁,更易读的ES6小技巧
2018/10/25 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
AngularJS实现的自定义过滤器简单示例
2019/02/02 Javascript
微信小程序:数据存储、传值、取值详解
2019/05/07 Javascript
vue+elementUI组件table实现前端分页功能
2020/11/15 Javascript
js数据类型转换与流程控制操作实例分析
2019/12/18 Javascript
浅谈JavaScript节流和防抖函数
2020/08/25 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
2020/08/31 Javascript
在vue中axios设置timeout超时的操作
2020/09/04 Javascript
[34:39]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第二局
2016/03/05 DOTA
python sqlobject(mysql)中文乱码解决方法
2008/11/14 Python
本地文件上传到七牛云服务器示例(七牛云存储)
2014/01/11 Python
Python2中的raw_input() 与 input()
2015/06/12 Python
编写Python小程序来统计测试脚本的关键字
2016/03/12 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
2018/10/29 Python
德国咖啡批发商:Coffeefair
2019/08/26 全球购物
小学生节约用水倡议书
2014/05/15 职场文书
留学推荐信(中英文版)
2015/03/26 职场文书
如何理解及使用Python闭包
2021/06/01 Python
MySQL 常见存储引擎的优劣
2021/06/02 MySQL
python机器学习创建基于规则聊天机器人过程示例详解
2021/11/02 Python
代码复现python目标检测yolo3详解预测
2022/05/06 Python