Vue 音频播放器组件
特性
- 简单实用
- 支持进度条拖拽
- 支持
PC
端和移动端 - 完善的文档和示例
- 原生
CSS
,无须引入 Less
、Scss
等预编译语言
使用
第一步:
npm i -S @liripeng/vue-audio-player
第二步:
// 全局引入
import AudioPlayer from '@liripeng/vue-audio-player'
import '@liripeng/vue-audio-player/lib/vue-audio-player.css'
Vue.use(AudioPlayer)
或者
// 局部引入
import AudioPlayer from '@liripeng/vue-audio-player'
import '@liripeng/vue-audio-player/lib/vue-audio-player.css'
components: {
AudioPlayer
}
第三步:
<template>
<div>
{{ currentAudioName || audioList[0].name }}
<audio-player
ref="audioPlayer"
:audio-list="audioList.map(elm => elm.url)"
:before-play="handleBeforePlay"
theme-color="#ff2929"
/>
</div>
</template>
<script>
export default {
data() {
return {
currentAudioName: '',
audioList: [
{
name: '音频1',
url: 'https://www.0dutv.com/upload/dance/F25F74A0B8FF82503241801D0E2CA5CD.mp3'
},
{
name: '音频2',
url: 'https://www.0dutv.com/upload/dance/20200316/C719452E3C7834080007662021EA968E.mp3'
}
]
}
},
methods: {
// 播放前做的事
handleBeforePlay(next) {
// 这里可以做一些事情...
this.currentAudioName = this.audioList[this.$refs.audioPlayer.currentPlayIndex].name
next() // 开始播放
}
}
}
</script>
属性
参数 | 说明 | 类型 | 默认值 |
---|
audio-list | 音频播放列表 | Array | - |
show-play-button | 是否显示播放按钮 | Boolean | true |
show-prev-button | 是否显示上一首按钮 | Boolean | true |
show-next-button | 是否显示下一首按钮 | Boolean | true |
show-volume-button | 是否显示音量按钮 | Boolean | true |
show-progress-bar | 是否显示进度条 | Boolean | true |
show-playback-rate | 是否显示播放速率按钮 | Boolean | true |
playback-rates | 播放速率设定列表 | Array<Number> | [0.5, 1, 1.5, 2] |
isLoop | 是否列表循环播放 | Boolean | true |
progress-interval | 进度更新间隔 | Number | 1000 |
theme-color | 主题色 | String | #e35924 |
before-play | 播放开始前的回调函数 调用 next() 后开始播放 | (next)=>void | - |
before-prev | 播放上一首前的回调函数 调用 next() 后开始播放上一首 | (next)=>void | - |
before-next | 播放下一首前的回调函数 调用 next() 后开始播放下一首 | (next)=>void | - |
其他的与原生 audio 一致 | | | |
事件
事件 | 说明 | 回调 |
---|
play | 播放开始后触发 | - |
pause | 播放暂停后触发 | - |
play-prev | 播放上一首后触发 | - |
play-next | 播放下一首后触发 | - |
playing | 播放中每 progressInterval 秒触发 | - |
timeupdate | 当前的播放位置发送改变时触发 | event |
loadedmetadata | 当媒介元素的持续时间以及其它媒介已加载数据时运行脚本触发 | event |
ended | 音频播放结束后触发 | event |
变量
变量 | 说明 | 默认值 |
---|
currentPlayIndex | 当前播放的音频索引 | 0 |
isPlaying | 音频是否正在播放 | false |
duration | 音频持续时间 | '' |
currentTime | 音频当前播放时间 | '' |
playbackRate | 音频当前播放速率 | 1 |
使用 ref
调用, 更多请自行查看组件 data
方法
方法 | 说明 | 回调 |
---|
play | 开始播放 | - |
pause | 暂停播放 | - |
playPrev | 播放上一首 | - |
playNext | 播放下一首 | - |
使用 ref
调用, 更多请自行查看组件 methods
更新日志
v1.2.10【2021/05/13】
v1.2.9【2021/04/26】
v1.2.8【2021/02/26】
v1.2.7【2021/01/29】
v1.2.6【2021/01/27】
v1.2.5【2021/01/26】
- 修改:
PC
端无须引入 hammer-touchemulator
即可拖拽
v1.2.4【2021/01/21】
v1.2.3【2020/12/31】
许可证
MIT
FAQ
最后
使用过程中发现任何问题都可以提 Issue
,也非常欢迎提 PR