没有效果图的展示都是空口无凭
1.基于audio并结合elementUI 的进度条实现
2.实现了播放器基本的功能,播放/暂停、快进、静音、调节声音大小、下载等功能
html代码,关键部分已加注释
<div class="right di main-wrap" v-loading="audio.waiting">
<!-- 此处的ref属性,可以很方便的在vue组件中通过 this.$refs.audio获取该dom元素 -->
<audio ref="audio" class="dn"
:src="url" :preload="audio.preload"
@play="onPlay"
@error="onError"
@waiting="onWaiting"
@pause="onPause"
@timeupdate="onTimeupdate"
@loadedmetadata="onLoadedmetadata"
></audio>
<div class="w-full">
<div class="flex items-center w-10/12 mx-auto">
<!-- 当前时间 -->
<el-tag type="info">{
{ audio.currentTime | formatSecond}}</el-tag>
<!-- 滚动条 -->
<el-slider v-show="!controlList.noProcess" v-model="sliderTime" :format-tooltip="formatProcessToolTip" @change="changeCurrentTime" class="slider_time"></el-slider>
<!-- 总时长 -->
<el-tag type="info">{
{ audio.maxTime | formatSecond }}</el-tag>
</div>
<div class="mt-3 flex items-center w-1/2 mx-auto justify-around">
<!-- 播放/暂停 -->
<el-button type="text" @click="startPlayOrPause">{
{audio.playing | transPlayPause}}</el-button>
<!-- 快进 -->
<el-button v-show="!controlList.noSpeed" type="text" @click="changeSpeed">{
{audio.