在写一个vue音频组件。样式上会显示音频的进度条,播放的时候,进度条会顺畅的进行向前滚动,当用户点击暂停的时候会暂停进度条,点击继续进度条继续走,知道播放完成。
1.css transition动画实现方案。使用了transition实现,当只有一个音频组件的时候没任何问题,但是当一个页面存在多个音频的时候,transition状态会在多个音频组件的暂停/播放状态有问题,浏览器只会保存一个组件示例的transition是正确的,其他音频的tansition会有冲突问题,可以理解为浏览器的机制bug。
2.使用定时器实现动画。如果音频时长为4s,但是整个音频进度条有100px,那么js实现的动画就会显得比较卡顿,没有css那么顺畅,体验不是很好。
有没有比较好的的实现方式,有考虑使用vue transition实现,但是手机兼容性是个问题,特别是安卓4.4及以下系统手机卡顿严重。
svg或者canvas?