# Audio 音频播放器 
音频播放器组件,用于播放音频文件。
uni-app 在 Vue3 中已废除 <audio> 组件,官方推荐使用 uni.createInnerAudioContext() API 播放音频,本组件即基于该 API 封装,内置播放/暂停、进度条拖动、倍速切换、多源自动切换等能力。
提示
本组件基于 uni.createInnerAudioContext (opens new window) 实现,适用于 App、H5、各小程序平台。
# 平台差异说明
| App(vue) | App(nvue) | H5 | 小程序 |
|---|---|---|---|
| √ | √ | √ | √ |
# 基本使用
通过 src 参数绑定音频地址即可。
<template>
<up-audio src="https://xxx.mp3" title="音频标题"></up-audio>
</template>
# 多源地址
src 支持传入数组,当某个地址加载失败时会自动切换到下一个源。
<up-audio :src="['https://xxx.mp3', 'https://xxx.ogg']"></up-audio>
# 倍速与循环
showRate 控制是否显示倍速切换按钮,rateList 自定义倍速档位,loop 控制是否循环播放。
<up-audio src="https://xxx.mp3" :show-rate="true" :loop="true"></up-audio>
# 事件
<template>
<up-audio src="https://xxx.mp3" @play="onPlay" @error="onError"></up-audio>
</template>
<script setup>
const onPlay = (e) => {
// e = { source: 'audio', src: '...' }
}
const onError = (e) => {
// e = { source: 'audio', errMsg: '...' }
}
</script>
# API
# Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| src | 音频地址,支持数组多源 | String | Array | '' |
| title | 标题 | String | '' |
| loop | 是否循环播放 | Boolean | false |
| showRate | 是否显示倍速切换 | Boolean | true |
| rateList | 倍速档位 | Array | [0.5, 0.75, 1, 1.25, 1.5, 2] |
| activeColor | 主题色(播放按钮、进度条选中色) | String | #2979ff |
| showTitle | 是否显示标题 | Boolean | true |
# Events
| 事件名 | 说明 | 回调参数 |
|---|---|---|
| play | 开始播放时触发 | { source, src } |
| error | 加载/播放出错时触发 | { source, errMsg } |