# 八音盒
来源
完成个人博客时定制背景音乐的播放组件。
# 基础用法
未来音乐盒的 UI 多多改善
配置src传入音乐资源,v-model为必填项。
# 高级用法
# 主体颜色
配置color来设置主体颜色,包括加载条,按钮,边框。
# 背景颜色
配置color来设置主体颜色,包括进度条,按钮,边框。
# 进度条长度
配置width来设置进度条的长度。
# Ref 引用
注意区别
refer是内部封装的<audio>标签的引用,考虑到多个音乐盒存在时内部audio的冲突。
而要使用音乐盒部的函数,需要将ref作用于音乐盒本身。
配置refer来设置audio的ref,以便操作元素。
# Audio 上下文
通过getAudioCtx来获取音频的上下文环境。
<ct-musicbox
  src="assets/gypsophila.mp3"
  name="明月星辰可见否"
  v-model="isPlay"
  refer="audioRef"
  ref="audioboxRef"
>
</ct-musicbox>
this.$refs.audioboxRef.getAudioCtx(); // [object AudioContext]
# Audio 分析器
通过getAudioAnalyser来获取音频的分析器,通过分析器可提取音频数据,从而进行音频可视化。
<ct-musicbox
  src="assets/gypsophila.mp3"
  name="明月星辰可见否"
  v-model="isPlay"
  refer="audioRef"
  ref="audioboxRef"
>
</ct-musicbox>
this.$refs.audioboxRef.getAudioAnalyser();
# 配置
# 属性
| 参数 | 信息 | 默认 | 必需 | 类型 | 
|---|---|---|---|---|
| v-model | 双向绑定,可控制音乐播放 | false | true | Boolean | 
| src | 播放的音乐资源 | null | true | —— | 
| name | 音乐名 | "Your music name" | false | String | 
| color | 按钮,进度条,边框的颜色 | #5659e8 | false | String | 
| bgColor | 背景颜色 | #efefef | false | String | 
| width | 进度条长度 | 100(px) | false | Number | 
| refer | 内部audio的ref |  audio | false | String | 
# 事件
| 事件 | 信息 | 
|---|---|
| handleEnded | 音乐播放结束 | 
# Ref
组件中的函数,直接通过this.$refs.audio.FunctionName()调用
| 函数 | 信息 | 
|---|---|
| getAudioCtx | 获取 Audio 上下文 | 
| getAudioAnalyser | 获取 Audio Api 创建的分析器 | 
← 模态对话框