原生audio 实现音频播放器功能
一 背景:项目为了引导授信、增加曝光度,在详情页添加了XX学院这一模块,为了引导用户购买我们单独专业的课程
二 实现效果: 初期预计的实现效果是用音频播放我们的课程,暂定的一期只有音频资源
三 现状:目前项目的视频播放组件用的是百度熊掌号下的资源和插件,并且没有音频相关的资源。所以问题就是需要开发新的可以播放音频的音频播放器。
四 问题
- currentTime 无法设置,这里遇到了一个这样的问题,每当点击进度条做跳转的时候,需要重新设置音频的播放进度,这里就涉及到重置audio的currentTime
然而每次点击的话,currentTime都会被重置为0,怪异的是在谷歌浏览器中是有问题的,火狐、ios的safari都是没有问题,最开始以为是兼容的问题,更改了代码
最后发现是谷歌浏览器对于流媒体 - 原生样式覆盖 firefox不能设置
- 跳帧实现
- 更新进度条实现
- 转换时间
- 结束时间的状态
- 监听进度条改变、监听结束
- 遇到的数据源的问题 也就是duration 不准确 不能被压缩
- 拖动播放问题
- 进度问题 切换了定时器也是无效 最后发现 和自己写的js精度有关 使用了Math.round + Math.floor 计算进度百度比 但是发现使用后,进度条更新慢,去掉后更新快
个人猜测,计算精度需要一定的时间,所以定时器太快 但是精度运算的结果太慢,导致进度条更新也很慢 -
loadedmetadata 的兼容问题 在火狐和chrome上一个执行一个不执行
-
mp4 格式在ios 无法播放 原因:初步断定是压缩格式导致的,因为换一个url就可以了
吾生有涯 而知也无涯矣