芒果音乐播放器接入文档
芒果音乐播放器是一款稳定、便捷、高性能的 HTML5 音乐播放器插件,面向生产环境分发。源码不对外开放时,只需要发布打包后的 npm 包和 CDN 文件,业务项目通过播放器标签自动挂载,或通过 JavaScript、Vue、React 实例化接入。
💡 提示
推荐使用在线调试工具快速生成配置代码,然后复制到你的项目中使用。
安装
npm 安装
bash
# 安装芒果音乐播放器
npm install mango-music-player
npm install mango-music-player
CDN 引入
直接通过 script 标签引入,无需安装任何依赖:
html
<script src="https://music.mgznb.cn/assets/js/music-player.min.js"></script>
快速使用
方式一:标签自动挂载
最简单的使用方式,只需引入 JS 文件,然后在页面中添加自定义标签即可:
html
<script src="https://music.mgznb.cn/assets/js/music-player.min.js"></script>
<mango-music-player
theme="mango-original-theme"
mode="cloud"
api-url="https://music.api.xfyun.club/api/v1/music/top?platform=netease&topId=3778678"
is-auto-popup="true"
memory="true"
></mango-music-player>
<mango-music-player
theme="mango-original-theme"
mode="cloud"
api-url="https://music.api.xfyun.club/api/v1/music/top?platform=netease&topId=3778678"
is-auto-popup="true"
memory="true"
></mango-music-player>
方式二:IIFE JS 实例化
通过 JavaScript 手动创建播放器实例:
javascript
<script src="https://music.mgznb.cn/assets/js/music-player.min.js"></script>
<script>
// 创建播放器实例
const player = new MusicPlayer({
theme: 'mango-original-theme',
mode: 'cloud',
apiUrl: 'https://music.api.xfyun.club/api/v1/music/top?platform=netease&topId=3778678',
isAutoPopup: true,
memory: true
});
// 挂载到页面
player.mount(document.body);
</script>
<script>
// 创建播放器实例
const player = new MusicPlayer({
theme: 'mango-original-theme',
mode: 'cloud',
apiUrl: 'https://music.api.xfyun.club/api/v1/music/top?platform=netease&topId=3778678',
isAutoPopup: true,
memory: true
});
// 挂载到页面
player.mount(document.body);
</script>
方式三:ESM / npm 引入
使用 ES Module 方式引入:
javascript
import { MusicPlayer } from 'mango-music-player';
const player = new MusicPlayer({
theme: 'mango-original-theme',
mode: 'cloud',
apiUrl: 'https://music.api.xfyun.club/api/v1/music/top?platform=netease&topId=3778678'
});
player.mount(document.body);
const player = new MusicPlayer({
theme: 'mango-original-theme',
mode: 'cloud',
apiUrl: 'https://music.api.xfyun.club/api/v1/music/top?platform=netease&topId=3778678'
});
player.mount(document.body);
CDN 地址
播放器提供 CDN 加速服务,可直接引用:
| 文件 | 地址 | 说明 |
|---|---|---|
| 主文件 (IIFE) | https://music.mgznb.cn/assets/js/music-player.min.js |
生产环境推荐使用 |
| ESM 版本 | https://music.mgznb.cn/assets/js/music-player.esm.js |
ES Module 格式 |
| 樱花特效 | https://music.mgznb.cn/plugin/sakura/sakura.min.js |
樱花飘落特效插件 |
基础配置
播放器支持丰富的配置项,可以通过 HTML 属性或 JS 对象传入:
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
language |
string | zh |
语言,可选 zh / en |
theme |
string | mango-original-theme |
主题名称 |
mode |
string | cloud |
播放模式,cloud / local |
api-url |
string | - | 云端模式下的 API 地址 |
environment |
string | production |
环境,production / development |
autoplay |
boolean | false |
是否自动播放 |
volume |
number | 0.8 |
音量,0-1 |
play-mode |
string | order |
播放模式,order / single / random |
主题配置
内置多套精美主题,可自由切换:
| 主题名 | 说明 |
|---|---|
mango-original-theme |
原始主题(芒果橙黄) |
mango-orange-theme |
橙色主题 |
mango-pink-theme |
粉色主题 |
mango-dark-green-theme |
深绿主题 |
mango-wine-theme |
酒红主题 |
mango-sky-theme |
天空主题 |
mango-dark-theme |
暗色主题 |
自定义主题
也可以通过 CSS 变量自定义主题样式:
css
mango-music-player {
--player-primary-color: #ff6b6b;
--player-bg-color: #ffffff;
--player-text-color: #333333;
}
--player-primary-color: #ff6b6b;
--player-bg-color: #ffffff;
--player-text-color: #333333;
}
布局配置
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
player-width |
string | 324px |
播放器宽度 |
bottom |
string | 2.5em |
底部距离 |
song-list-height |
string | - | 歌单高度 |
visible-song-list-count |
number | 4 |
可见歌单数量 |
font-name |
string | - | 自定义字体名称 |
is-auto-popup |
boolean | false |
是否自动弹出 |
is-auto-playlist |
boolean | false |
是否自动展开歌单 |
播放配置
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
memory |
boolean | false |
是否记忆播放 |
memory-key |
string | - | 记忆存储的 key |
colorful-lyric |
boolean | false |
是否彩色歌词 |
audio-visualizer |
boolean | false |
是否音频可视化 |
system-monitor |
boolean | false |
是否系统监控 |
lazy-load-timer |
number | - | 延迟加载时间(毫秒) |
云端模式
云端模式下,播放器会从指定的 API 地址获取歌单数据:
html
<mango-music-player
mode="cloud"
api-url="https://music.api.xfyun.club/api/v1/music/top?platform=netease&topId=3778678"
></mango-music-player>
mode="cloud"
api-url="https://music.api.xfyun.club/api/v1/music/top?platform=netease&topId=3778678"
></mango-music-player>
支持的 API 格式
- 歌榜模式:
/api/v1/music/top?platform=netease&topId=榜单ID - 歌单模式:
/api/v1/music/playlist-songs?platform=netease&playlistId=歌单ID
本地模式
本地模式下,可以直接传入歌曲数组:
javascript
const player = new MusicPlayer({
mode: 'local',
playlist: [
{
name: '歌曲名',
artist: '歌手',
url: 'https://example.com/song.mp3',
cover: 'https://example.com/cover.jpg',
lyric: '[00:00.00] 歌词...'
}
]
});
mode: 'local',
playlist: [
{
name: '歌曲名',
artist: '歌手',
url: 'https://example.com/song.mp3',
cover: 'https://example.com/cover.jpg',
lyric: '[00:00.00] 歌词...'
}
]
});
实例 API
播放器实例提供丰富的 API 方法:
| 方法 | 参数 | 说明 |
|---|---|---|
play() |
- | 播放 |
pause() |
- | 暂停 |
toggle() |
- | 切换播放/暂停 |
stop() |
- | 停止 |
prev() |
- | 上一首 |
next() |
- | 下一首 |
select(index) |
index: number | 跳转到指定歌曲 |
seek(seconds) |
seconds: number | 跳转到指定秒数 |
setVolume(volume) |
volume: number (0-1) | 设置音量 |
setPlayMode(mode) |
mode: string | 设置播放模式 |
setConfig(config) |
config: object | 更新配置 |
setPlaylist(playlist) |
playlist: array | 替换歌单 |
destroy() |
- | 销毁播放器 |
生命周期
播放器提供完整的生命周期钩子:
javascript
const player = new MusicPlayer({
// 播放器创建前
onBeforeCreate: () => {},
// 播放器创建后
onCreated: () => {},
// 播放器挂载前
onBeforeMount: () => {},
// 播放器挂载后
onMounted: () => {},
// 播放器销毁前
onBeforeDestroy: () => {},
// 播放器销毁后
onDestroyed: () => {}
});
// 播放器创建前
onBeforeCreate: () => {},
// 播放器创建后
onCreated: () => {},
// 播放器挂载前
onBeforeMount: () => {},
// 播放器挂载后
onMounted: () => {},
// 播放器销毁前
onBeforeDestroy: () => {},
// 播放器销毁后
onDestroyed: () => {}
});
樱花特效插件
樱花飘落特效插件,引入即可生效:
html
<!-- 樱花特效插件 -->
<script src="https://music.mgznb.cn/plugin/sakura/sakura.min.js"></script>
<script src="https://music.mgznb.cn/plugin/sakura/sakura.min.js"></script>
🌸 提示
樱花特效是独立的插件,只需在页面中引入 script 标签即可自动生效,不需要额外配置。
兼容模式
兼容模式插件,用于旧版浏览器兼容:
html
<!-- 兼容模式插件(放在播放器主JS之前) -->
<script src="https://music.mgznb.cn/plugin/ie-out/index.js"></script>
<!-- 播放器主JS -->
<script src="https://music.mgznb.cn/assets/js/music-player.min.js"></script>
<script src="https://music.mgznb.cn/plugin/ie-out/index.js"></script>
<!-- 播放器主JS -->
<script src="https://music.mgznb.cn/assets/js/music-player.min.js"></script>