HTML5列表音乐播放器SMusic

所属分类:媒体-音频和视频

 58594  392  查看评论 (20)
分享到微信朋友圈
X
HTML5列表音乐播放器SMusic ie兼容10

SMusic使用方法

这是一款基于HTML5以及CSS3的列表式音乐播放器,增加了列表播放,音量控制,播放进度,播放时间以及播放模式,上一曲,下一曲等功能,已增加歌词功能。采用原生JavaScript编写,不依赖任何库文件,兼容支持html5的浏览器。下载包中的代码已压缩。

可配置参数

参数名类型默认值可选值说明
musicListArray Object[]自定义,格式如[{title:'标题',singer:'歌手',cover:'封面',src:'地址'}] 播放媒体文件列表
defaultVolumeNumber.7自定义,范围在 0 - 1 之间初始化音量值
defaultIndexNumber0
初始化播放索引
autoPlay[1.0.1新增]booleantrue
是否自动播放
defaultMode[1.0.2新增]Number11:列表模式,2:随机模式,3:单曲循环默认播放模式,随机模式优先于defaultIndex
callback[1.0.2新增]Functionfunction (obj) { }
返回当前播放媒体文件信息(Object)

关于歌词

由于涉及AJAX请求,请在服务器环境下演示

目前只支持UTF8编码歌词文件,歌词形式如下:

[offset:0]
[00:00.80]车站 (Live) - 李健
[00:02.21]词:李健
[00:02.96]曲:竹内玛利亚
[00:04.43]
[00:37.57]车窗外恋人相拥
[00:42.62]还在难舍难离
[00:46.08]
[00:47.67]汽笛声突然响起123456789

由于歌词文件需要AJAX加载,目前,只能加载同域文件,如果需要跨域加载歌词,如远程歌词文件,则请自行修改源码(102行)为jsonp请求,这里不会再做更新。

歌词每行高度如果更改(默认30px),请同时修改js源码356行 var top = (i-1) * 30; //30是每个LI的高度

播放器整体样式叫丑,请自行更改CSS文件,注意不要修改类名

CSS

<link rel="stylesheet" href="src/css/smusic.css"/>

HTML

<div class="grid-music-container f-usn">
    <div class="m-music-play-wrap">
        <div class="u-cover"></div>
        <div class="m-now-info">
            <h1 class="u-music-title"><strong>标题</strong><small>歌手</small></h1>
            <div class="m-now-controls">
                <div class="u-control u-process">
                    <span class="buffer-process"></span>
                    <span class="current-process"></span>
                </div>
                <div class="u-control u-time">00:00/00:00</div>
                <div class="u-control u-volume">
                    <div class="volume-process" data-volume="0.50">
                        <span class="volume-current"></span>
                        <span class="volume-bar"></span>
                        <span class="volume-event"></span>
                    </div>
                    <a class="volume-control"></a>
                </div>
            </div>
            <div class="m-play-controls">
                <a class="u-play-btn prev" title="上一曲"></a>
                <a class="u-play-btn ctrl-play play" title="暂停"></a>
                <a class="u-play-btn next" title="下一曲"></a>
                <a class="u-play-btn mode mode-list current" title="列表循环"></a>
                <a class="u-play-btn mode mode-random" title="随机播放"></a>
                <a class="u-play-btn mode mode-single" title="单曲循环"></a>
            </div>
        </div>
    </div>
    <div class="f-cb">&nbsp;</div>
    <div class="m-music-list-wrap"></div>
    <div class="m-music-lyric-wrap">
        <div class="inner">
            <ul class="js-music-lyric-content">
                <li class="eof">暂无歌词... </li>
            </ul>
       </div>
   </div>
</div>

JS调用

<script src="src/js/musicList.js"></script>
<script src="src/js/smusic.js"></script>
<script>
   new SMusic({
        musicList : musicList,
        autoPlay  : true,  //是否自动播放
        defaultMode : 2,   //默认播放模式,随机
        callback   : function (obj) {  //返回当前播放歌曲信息
            console.log(obj);
        }
    });
</script>
相关插件-音频和视频

h5视频播放器

支持拖拽与点击跳转可以切换全屏并且支持音量调节已经绑定键盘事件
  音频和视频
 126921  445

jQuery实现Winamp2播放器插件

win95时代的经典音频播放器,现在我们来通过网页来实现这款播放器。怀旧一下过去的时光。
  音频和视频
 29621  291

jQuery自定audio音频

jQuery自定义audio音频样式,包括功能。
  音频和视频
 28105  321

音频可视化插件wavesurfer.js多音频实例

音频可视化插件wavesurfer.js的使用(包含多个音频的切换)
  音频和视频
 29280  302

讨论这个项目(20)回答他人问题或分享插件使用方法奖励jQ币 评论用户自律公约

    shuyvmuge 0
    2022/10/6 17:13:08
    页面第一次加载不能能自动播放,看了一下代码,逻辑好像没问题就是不能自动播放,郁闷 回复
    旋转的陀螺 0
    2020/4/5 21:13:43
    楼主,请问歌曲时间信息与进度条初始化不出来是怎么回事呢? 回复
    qqq420080246 0
    2019/12/9 17:58:33
    你好,代码里面更换了歌曲信息,前台还是不变化,请指教,谢谢
        qqq4200802460
        2019/12/9 21:43:49
        清缓存后,好了。
        但歌词不显示
    回复
    LLH 0
    2018/11/21 15:42:02
    请问我这边自动播放会报错 怎么回事?
    报错信息如下:
    Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first. 回复
    0
    2018/5/3 11:16:13
    在苹果手机上不能自动播放啊,而且播放延迟 回复
    别被风景迷了眼 0
    2018/1/12 18:28:36

    怎么监听播放进度和设置

    回复
    *源码爱好* 0
    2017/8/9 4:38:03

    急求为什么加载不了歌词??

        *源码爱好*0
        2017/8/9 4:41:07

                cover:'http://127.0.0.1/uploads/allimg/170804/1-1FP4223G30-L.jpg',

        src: 'http://127.0.0.1/uploads/soft/170805/1-1FP5002Q5.mp3',

        lyric  : "http://127.0.0.1/uploads/soft/170805/1-1FP5002Q5.lrc"

        歌曲正常,头像还好,就是歌词网页可以打开。播放不显示。

        *源码爱好*0
        2017/8/9 4:50:29

        已解决。汗必须经过后台,谢谢贴主分享漂亮的播放器。

    回复
    GLAU 0
    2017/5/25 15:00:07

    在哪里修改  可以换成自己要播的歌单?

    回复
    淇实。须臾 0
    2017/3/27 15:54:39

    你好,请问一下如何让音乐列表直接展示所有列表中的音乐,不需要拖动条

        fly-小猛艺术1
        2018/7/10 10:25:21

        样式文件里面:

        .grid-music-container .m-music-list-wrap{
           margin-left: 135px;
           margin-right: 25px;
           height: 120px;
           border: 1px solid rgba(255,255,255,.7);
           overflow-x: hidden;
           overflow-y: auto;
        }

        这个高度自适应就可以了吧?

    回复
    ghtao 0
    2017/3/24 10:48:24

    怎么播放本地音乐?

    回复
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
取消回复