更新记录

1.0.8(2023-09-13)

  • 解决清空src后还会继续加载的问题

1.0.7(2023-07-25)

  • 解决语法错误

1.0.6(2023-07-20)

  • 优化音频对象实例化方法,解决重复绑定监听事件的问题
查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.1.0 app-vue app-nvue
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

使用须知

props属性

属性名 类型 默认值 可选值 说明 兼容性
src String ---- ---- 播放链接 ----
title String ---- ---- 原生音频播放器显示标题(全局歌词默认显示文字) mode=='background'
poster String ---- ---- 原生音频播放器显示背景图 mode=='background'
lyric Array ---- ---- 歌词集合 ----
mode String inner inner/background 组件模式 background在H5下不支持
playMode String ambient ambient(不中止其他声音播放)/soloAmbient(中止其他声音播放)/playback(中止其他声音,后台播放) 播放模式 mode=='inner'
loop Boolean false true/false 循环播放 ----
duration Number ---- ---- 自定义播放时长 ----
autoplay Boolean false true/false 自动播放 ----
playbackRate Number 1.0 0.5/0.8/1.0/1.25/1.5/2.0 音频播放倍率 App 3.4.5+(Android 需要 6 及以上版本)、微信小程序 2.11.0、支付宝小程序、抖音小程序 2.33.0+、快手小程序、百度小程序 3.120.2+
volume Number 1 0-1 音量 mode=='inner'
initialTime Number 0 ---- 音频播放的开始位置 ----
lyricConfig Object ---- ---- 歌词配置 ----
shareConfig Object ---- ---- 原生音频播放器分享配置 mode=='background'

event事件

事件名 参数 说明 兼容性
canplay duration 进入可以播放状态,但不保证后面可以流畅播放,总时长可以从这里取到 ----
play ---- 播放事件 ----
pause ---- 暂停事件 ----
stop ---- 停止事件 ----
ended ---- 自然播放结束事件 ----
error ---- 播放错误事件 ----
timeUpdate ---- 播放进度更新事件 ----
waiting ---- 加载中事件,当数据不足,需要停下来加载时会触发 ----
seeking ---- 进行 seek 操作事件 mode=='inner'
seeked ---- 完成 seek 操作事件 mode=='inner'
prev ---- 系统音乐播放面板点击上一曲事件 mode=='background'(iOS only)
next ---- 系统音乐播放面板点击下一曲事件 mode=='background'(iOS only)
lyricChange {index: 当前歌词的索引, title: 当前歌词} 歌词变化事件 ----

内置方法

方法名 参数 说明
toggle ---- 播放/暂停
play ---- 播放
pause ---- 暂停
stop ---- 停止
destroy ---- 销毁
seek currentTime 跳转位置(单位是s)

lyricConfig歌词配置

属性名 类型 默认值 可选值 说明
mode String 'close' close(不显示也不计算歌词)/hidden(计算但不显示歌词)/overall(计算并显示歌词) 歌词模式
fillColor String '#2ca2f9' ---- 歌词填充颜色
strokeColor String '#333333' ---- 歌词描边颜色
fontSize Number uni.upx2px(35) ---- 歌词大小(px)
fontFamily String 'Times New Roman' ---- 歌词字体
fontFace String ---- ---- 歌词字体路径(仅支持APP)
verticalAlign String 'bottom' top/bottom 歌词上下定位
offset Number uni.upx2px(15) ---- 歌词上下定位偏移量

shareConfig分享配置(mode=='background')

属性名 类型 默认值 可选值 说明
shareUrl String ---- ---- 分享链接
albumName String ---- ---- 分享专辑名称
singer String ---- ---- 分享歌手名称

快速开始

    <yingbing-audio src="/static/test.mp3"></yingbing-audio>

自动播放(部分浏览器可能不支持)

    <yingbing-audio autoplay src="/static/test.mp3"></yingbing-audio>

开启背景播放器(H5不支持)

    <yingbing-audio mode="background" src="/static/test.mp3"></yingbing-audio>

监听事件

    <yingbing-audio src="/static/test.mp3" @canplay="handleCanplay" @play="handlePlay" @pause="handlePause"></yingbing-audio>
export default {
    methods: {
        //加载完毕
        handleCanplay (e) {
            console.log(e.duration)//播放时长
        },
        //播放事件
        handlePlay () {
            console.log('play')
        },
        //暂停事件
        handlePause () {
            console.log('pause')
        }
    }
}

添加歌词

    <yingbing-audio :lyric="lyric" :lyricConfig="lyricConfig" src="/static/test.mp3" @lyricChange="handleLyricChange"></yingbing-audio>
export default {
    data() {
        return {
            lyric: [{
                time: '0',//歌词显示的时间(单位是s)
                title: '这是第一句歌词'//歌词文本
            },{
                time: '5',
                title: '这是第二句歌词'
            },{
                time: '8',
                title: '这是第三句歌词'
            }],
            lyricConfig: {
                mode: 'overall'
            }
        }
    },
    methods: {
        //歌词改变事件
        handleLyricChange (e) {
            console.log(e)//歌词信息
        }
    }
}

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问