简介
最近想在博客中加入音乐播放功能,找了一圈,最后锁定两个方案,一个html5自带的audio,另一个是APlayer播放器。audio的风格比较接近博客的主题,所以首页用的是audio标签。文章页用的是APlayer,因为APlayer支持Hexo,它有个支持Markdown的版本叫hexo-tag-aplayer,可以方便的在Markdown中插入音乐。hexo-tag-aplayer还支持MetingJS,所以可以播放网易云音乐,QQ音乐。
使用hexo-tag-aplayer
安装hexo-tag-aplayer
1 | npm install --save hexo-tag-aplayer |
在_config.yml中开启meting模式:
1 | aplayer: |
复制歌单的链接,然后复制歌单的id,例如 https://music.163.com/playlist?id=523845661&userid=46562117 ,这个歌单的id就是523845661,公司名可以是tencent、netease或是其他公司,下面给出一个例子,随便找个md文件,输入:
1 | {% meting "523845661" "netease" "playlist" "theme:#FF4081" "mode:circulation" "mutex:true" "listmaxheight:340px" "preload:auto" %} |
刷新网页看看是不是有列表了,使用就这么简单。
使用audio标签
audio标签默认改了一些样式,首先默认audio播放器背景是圆角的,我改成了方角:
1 | audio::-webkit-media-controls-enclosure { |
然后在css中调整了播放按钮位置:
1 | audio::-webkit-media-controls-play-button { |
因为在手机上的体验问题,我隐藏掉了下载按钮,下载按钮的隐藏需要在标签中设置controlsList=”nodownload”属性
1 | <audio controlsList="nodownload" controls="controls" /> |
另外如果你想隐藏播放器上面的一些显示内容,可以在css中,通过设置伪类的display:none属性来达到隐藏效果,audio和video标签提供了下面的一些伪类:
1 | audio::-webkit-media-controls-panel |
比如现在我们要隐藏播放按钮,那么就在css中加入如下内容:
1 | audio::-webkit-media-controls-play-button { |
目前的不足之处
还没解决首页多个音乐同时播放互斥的问题
因为首页用的是audio标签,所以音乐需要找个服务器存起来,我目前是托管在LeanCloud上,每次都要上传音乐,略显麻烦