0.1.1 • Published 3 years ago

audio5js v0.1.1

Weekly downloads
5
License
MIT
Repository
-
Last release
3 years ago

audio5js

img

#模块介绍

基于HTML5 <audio>标签进行Javascript功能封装,包括三个模块: 1. 播放器 audio5.js 2. 歌单 list.js

#安装引入:

#NPM

安装: npm install audio5js

引入:

Vue-cli示例:

import Audio5 from 'audio5js'

export default {
    data(){
      return{
        Audio5
      }
    },
    mounted(){
        Audio5.init({
            ...
        })
    }
}

#接口指南

插件初始化

#初始化
Audio5.init()

传参:

Audio5.init({
    // 容器
    ele: document.body|DOM,
    // 自动播放
    autoplay: false|true,
    // 预加载
    preload: 'auto|metadate|none',
    // 音量
    volume: 0-1,
    // 静音
    muted: false|true,
    // 播放速率
    playbackRate: -1|0.5|1|2,
    // 循环模式:单曲|顺序|随机|不循环
    mode: 'single|list|random|none',
    // 样式主题
    theme: 'default|none',
    // 播放列表切歌回调
    cut:()=>{},
    // 播放列表更新回调
    change:()=>{},
})
#方法:
Audio5:{
    // 初始化
    init,
    // 播放器
    play,
    togPause,
    next,
    prev,
    volume,
    togMuted,
    progress,
    // 界面
    togPlayer,
    togList,
    togLrc,
    // 播放清单
    get,
    add,
    replace,
    remove,
}

audio5.js :对HTML5<audio>属性和方法封装

#初始化
audio5.init()

默认配置:

audio5.init({
    // 容器
    ele: document.body,
    // 自动播放
    autoplay: false,
    // 预加载
    preload: 'metadate',
    // 音量
    volume: 0.75,
    // 静音
    muted: true,
    // 播放速率
    playbackRate: 1,
    // 播放器主题
    theme: 'none',
})
#载入
audio5.load(<{url}>)

传入音频uri,若autoplay为true,自动播放

#播放/暂停
audio5.togPause()

根据audio5.paused判断切换

#静音/非静音
audio5.togMuted()

根据audio5.muted判断切换

#音量
audio5.volume(<num>)

传入百分比num:<0-1>调节音量,并audio5.muted为false

#寻址
audio5.seekTo(<percent>)

传入总时间长度百分比percent:<0-1>,跳转到指定播放帧

#重加载
audio5.reload()
#获取Audio元信息
audio5.getMate()
#事件绑定
audio5.on(<events>,function(){
    ...
})

绑定原生audio事件

list.js : 增删改查,下一曲、上一曲、跳至(nextTo)、循环模式

#初始化
list.init()

默认配置:

list.init({
    // 容器
    // ele: document.body,
    // 循环模式
    mode: 'list',
    // 列表主题
    theme: 'none',
    // 列表切歌回调
    cut:()=>{},
    // 列表更新回调
    change:()=>{},
})
#获取列表
list.get([index])

传参index获取单条,不传参获取列表

#新增
list.add(<{url,[singer,title,desc]}>)

格式化默认{url:'地址',singer:'歌手',title:'歌名',desc:'专辑描述'}

#删除
list.del(<index>)

传参播放列表<数组>list下标

#调整序位
list.replace(<from>,<to>)

根据播放列表<数组>list下标,调整位置,从下标from处移动到下标to处,可实现拖拽排序功能

#清空
list.clear()
#下一曲
list.next()
#上一曲
list.prev()
#循环模式切换
list.mode(<'single'|'list'|'random'|'none'>)
#事件绑定
list.on('cut|change',()=>{
    ...
})

自定义事件绑定:方法next()nextTo()prev()触发切歌cut事件,;方法add()del()replace()clear()触发更新列表change事件;其中del()若删除当前项(currentIndex),会执行next(),触发cut事件

附录:HTML5 audio 部分相关属性、方法和事件

#属性
  • 可设置或读取
属性说明示例
autoplay就绪后自动播放autoplay='autoplay'
controls显示控件controls='controls'
loop重新开始播放loop='loop'
preload自动加载并预备播放,不自动播放preload='auto|metadate|none'
src播放音频的URL地址src="url"
currentTime当前播放位置currentTime=“秒”
muted是否关闭声音muted="true|false"
valume音量volume=0.8
playbackRate速率playbackRate=-1|0.5|1|2
属性说明示例
paused暂停(并不能改变播放)paused="true|false",只用于获取
  • 只读
属性说明
currentSrc当前src
paused是否暂停
durantion音频总长度(秒)
played已读的TimeRanges
ended是否结束
error错误信息
seekable可寻址的TimeRanges
seeking正在寻址
networkState网络状态:0-未初始化,1-获取资源,2-下载中,3-未找到资源
readyState准备状态:0-未准备,1-获取元数据,2-当前帧准备完成,3-下一帧准备完成,4-可以播放
#方法
方法说明示例
canPlayType()检查播放类型
load()(重)加载
play()播放
pause()暂停
fastSeek()指定时间
getStartDate()当前时间线偏移量
#事件
事件说明示例
loadstart开始请求数据
onloadedmetadate元数据被加载
canplay缓冲完成
canplaythrough载入完成
playplay(),autoplay触发
playing缓存中,暂停播放
wating缓存中,等待播放
volumechange音量改变
progress正在播放,暂停不触发,间隔大
timeupdate播放时间改变时触发,暂停不触发,间隔小
pausepause()触发
ended结束时
seeking正在寻址
seeked寻址
0.1.1

3 years ago

0.1.0

3 years ago