cPlayer
A beautiful and clean WEB Music Player by HTML5. demo here.
Feature
- Lyrics display
- Playlists
- Three play modes, Single cycle, list loop, random play
- Designed for touch devices
- Modular Customizable
- Media Session Support
Quick Start
<div id="app"></div>
<script src=".../cplayer.js"></script>
<script>
let player = new cplayer({
element: document.getElementById('app'),
playlist: [
{
src: '歌曲资源链接...',
poster: '封面链接...',
name: '歌曲名称...',
artist: '歌手名称...',
lyric: '歌词...',
sublyric: '副歌词,一般为翻译...',
album: '专辑,唱片...'
},
{
...
},
......
]
})
</script>
webpack
npm install cplayer --save
import cplayer from 'cplayer';
new cplayer({
...
})
相关项目
Option
OPTION | default content | description |
---|
element | document.body | 注入播放器的目标元素。 |
playlist | [] | 播放列表。 |
zoomOutKana | false | 日语优化,缩小显示歌词中的假名。 |
playmode | listloop | 默认播放模式。 |
volume | 1 | 默认音量 |
point | 0 | 开始播放的歌曲索引。 |
showPlaylist | false | 显示播放列表,而不是当前歌曲信息。 |
autoplay | false | 自动播放(移动端不可用)。 |
width | '' | 播放器宽度。 |
size | 12px | 播放器尺寸。 |
style | '' | 附加的css样式。 |
shadowDom | 'true' | 启用 shadow DOM。 |
showPlaylistButton | 'true' | 显示播放列表按钮 |
dropDownMenuMode | 'bottom' | 菜单(播放列表和歌曲信息)的显示模式, ‘bottom’ 底部、 'top' 顶部、 'none' 不显示 |
Apis
Event
started
: 每首歌开始时触发,此时已经开始播放。ended
: 歌曲播放到末尾时触发play
: 开始播放时触发pause
: 暂停播放时触发
play 事件
和 pause 事件
必定交替触发。
需要注意的是上一首歌结束自动切换到下一首时不会触发 play 事件
, 但会触发 started 事件
和 openaudio 事件
。
playmodechange
: play 事件
和 pause 事件
的结合体openaudio
: 打开音频时触发,但此时还不一定有音频数据。volumechange
: 音量被改变时触发timeupdate
: 更新播放时间
常见问题
如何播放网易云上的音乐?
在 cplayer.js
之后执行以下脚本
cplayer.prototype.add163 = function add163(id) {
if (!id) throw new Error("Unable Property.");
return fetch("https://music.huaji8.top/?id=" + id).then(function(res){return res.json()}).then(function(data){
let obj = {
name: data.info.songs[0].name,
artist: data.info.songs[0].ar.map(function(ar){ return ar.name }).join(','),
poster: data.pic.url,
lyric: data.lyric.lyric,
sublyric: data.lyric.tlyric,
src: data.url.url,
album: data.info.songs[0].al.name
}
this.add(obj);
return obj;
}.bind(this))
}
使用:
player.add163(12345678)
我只需要一个封装好的 audio api,不想要 UI ?
dist
文件夹中有 cplayer-noview.js
是去 UI 版的 cplayer。