diff --git a/music/README.md b/music/README.md deleted file mode 100644 index 5c6cb78..0000000 --- a/music/README.md +++ /dev/null @@ -1,59 +0,0 @@ -# HeoMusic - -![](/img/cover.webp) - -一个基于[Aplayer](https://github.com/DIYgod/APlayer)和[MetingJS](https://github.com/metowolf/MetingJS)的静态音乐播放器 - -## 预览 - -[HeoMusic - 用音乐感染人心](https://music.zhheo.com/) - -## 基本操作 - -`Space空格键`:暂停/播放音乐 - -`上/下方向键`:增加/减少音量 - -`左/右方向键`:上一曲/下一曲 - -## 修改歌单/私有部署与配置 - -### ID - -播放列表的id,可以从音乐歌单分享的链接中获取,例如`https://y.qq.com/n/ryqq/playlist/8668419170`中,id为`8668419170` - -### Server - -播放列表的服务商,例如`netease`(网易云音乐),`tencent`(腾讯),`kugou`(酷狗),`xiami`(小米音乐),`baidu`(百度音乐) - -### Type(可选) - -播放列表的类型,例如`song`(单曲), `playlist`(歌单,默认), `album`(专辑), `search`(搜索结果), `artist`(歌手) - -## 使用URL参数(推荐) - -HeoMusic支持URL参数 `https://music.zhheo.com/?id=`+ id +`&server=` + server - -例如: - -**HeoMusicTop:** https://music.zhheo.com/?id=8668419170&server=tencent - -**鸡你太美:** https://music.zhheo.com/?id=7363728147&server=netease - -## 修改HTML的方法(需要自行搭建) - -编辑`index.html`的相关代码,填写歌单id和服务商 - -![修改id和server](/img/help.webp) - -直接访问首页`index.html`即可 - -## 参与开发 - -[@张洪Heo](https://github.com/zhheo) -[@anzhiyu](https://github.com/anzhiyu-c) -[@Glowed](https://github.com/Glowed) - -## 许可 - -项目中包含的Aplayer及MetingJS的修改版本,他们均使用MIT协议 diff --git a/music/css/APlayer.css b/music/css/APlayer.css deleted file mode 100644 index 73438f8..0000000 --- a/music/css/APlayer.css +++ /dev/null @@ -1,721 +0,0 @@ -.aplayer { - font-family: Arial, Helvetica, sans-serif; - margin: 5px; - border-radius: 2px; - overflow: hidden; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - line-height: normal; - position: relative -} - -.aplayer * { - box-sizing: content-box -} - -.aplayer svg { - width: 100%; - height: 100% -} - -.aplayer svg circle, -.aplayer svg path { - fill: #fff -} - -.aplayer.aplayer-withlist .aplayer-info { - border-bottom: 1px solid #e9e9e9 -} - -.aplayer.aplayer-withlist .aplayer-list { - display: block -} - -.aplayer.aplayer-withlist .aplayer-icon-order, -.aplayer.aplayer-withlist .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-menu { - display: inline -} - -.aplayer.aplayer-withlrc .aplayer-pic { - height: 90px; - width: 90px -} - -.aplayer.aplayer-withlrc .aplayer-info { - margin-left: 90px; - height: 90px; -} - -.aplayer.aplayer-withlrc .aplayer-lrc { - display: block -} - -.aplayer.aplayer-narrow { - width: 66px -} - -.aplayer.aplayer-narrow .aplayer-info, -.aplayer.aplayer-narrow .aplayer-list { - display: none -} - -.aplayer.aplayer-narrow .aplayer-body, -.aplayer.aplayer-narrow .aplayer-pic { - height: 66px; - width: 66px -} - -.aplayer.aplayer-fixed { - position: fixed; - bottom: 0; - left: 0; - right: 0; - margin: 0; - z-index: 99; - overflow: visible; - max-width: 400px; - box-shadow: none -} - -.aplayer.aplayer-fixed .aplayer-list { - margin-bottom: 65px; - border: 1px solid #eee; - border-bottom: none -} - -.aplayer.aplayer-fixed .aplayer-body { - position: fixed; - bottom: 0; - left: 0; - right: 0; - margin: 0; - z-index: 99; - background: #fff; - padding-right: 18px; - transition: all .3s ease; - max-width: 400px -} - -.aplayer.aplayer-fixed .aplayer-lrc { - display: block; - position: fixed; - bottom: 10px; - left: 0; - right: 0; - margin: 0; - z-index: 98; - pointer-events: none; - text-shadow: -1px -1px 0 #fff -} - -.aplayer.aplayer-fixed .aplayer-lrc:after, -.aplayer.aplayer-fixed .aplayer-lrc:before { - display: none -} - -.aplayer.aplayer-fixed .aplayer-info { - -webkit-transform: scaleX(1); - transform: scaleX(1); - -webkit-transform-origin: 0 0; - transform-origin: 0 0; - transition: all .3s ease; - border-bottom: none; - border-top: 1px solid #e9e9e9 -} - -.aplayer.aplayer-fixed .aplayer-info .aplayer-music { - width: calc(100% - 105px) -} - -.aplayer.aplayer-fixed .aplayer-miniswitcher { - display: block -} - -.aplayer.aplayer-fixed.aplayer-narrow .aplayer-info { - display: block; - -webkit-transform: scaleX(0); - transform: scaleX(0) -} - -.aplayer.aplayer-fixed.aplayer-narrow .aplayer-body { - width: 66px !important -} - -.aplayer.aplayer-fixed.aplayer-narrow .aplayer-miniswitcher .aplayer-icon { - -webkit-transform: rotateY(0); - transform: rotateY(0) -} - -.aplayer.aplayer-fixed .aplayer-icon-back, -.aplayer.aplayer-fixed .aplayer-icon-forward, -.aplayer.aplayer-fixed .aplayer-icon-lrc, -.aplayer.aplayer-fixed .aplayer-icon-play { - display: inline-block -} - -.aplayer.aplayer-fixed .aplayer-icon-back, -.aplayer.aplayer-fixed .aplayer-icon-forward, -.aplayer.aplayer-fixed .aplayer-icon-menu, -.aplayer.aplayer-fixed .aplayer-icon-play { - position: absolute; - bottom: 27px; - width: 20px; - height: 20px -} - -.aplayer.aplayer-fixed .aplayer-icon-back { - right: 75px -} - -.aplayer.aplayer-fixed .aplayer-icon-play { - right: 50px -} - -.aplayer.aplayer-fixed .aplayer-icon-forward { - right: 25px -} - -.aplayer.aplayer-fixed .aplayer-icon-menu { - right: 0 -} - -.aplayer.aplayer-arrow .aplayer-icon-loop, -.aplayer.aplayer-arrow .aplayer-icon-order, -.aplayer.aplayer-mobile .aplayer-icon-volume-down { - display: none -} - -.aplayer.aplayer-loading .aplayer-info .aplayer-controller .aplayer-loading-icon { - display: block -} - -.aplayer.aplayer-loading .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb { - -webkit-transform: scale(1); - transform: scale(1) -} - -.aplayer .aplayer-body { - position: relative -} - -.aplayer .aplayer-icon { - width: 15px; - height: 15px; - border: none; - background-color: transparent; - outline: none; - cursor: pointer; - opacity: .8; - vertical-align: middle; - padding: 0; - font-size: 12px; - margin: 0; - display: inline-block; -} -.aplayer .aplayer-icon path { - transition: all .2s ease-in-out -} - -.aplayer .aplayer-icon-back, -.aplayer .aplayer-icon-forward, -.aplayer .aplayer-icon-lrc, -.aplayer .aplayer-icon-order, -.aplayer .aplayer-icon-play { - display: none -} - -.aplayer .aplayer-icon-lrc-inactivity svg { - opacity: .4 -} - -.aplayer .aplayer-icon-forward { - -webkit-transform: rotate(180deg); - transform: rotate(180deg) -} - -.aplayer .aplayer-lrc-content { - display: none -} - -.aplayer .aplayer-pic { - position: relative; - float: left; - height: 66px; - width: 66px; - background-size: cover; - background-position: 50%; - transition: all .3s ease; - cursor: pointer -} - -.aplayer .aplayer-pic:hover .aplayer-button { - opacity: 1 -} - -.aplayer .aplayer-pic .aplayer-button { - position: absolute; - border-radius: 50%; - opacity: .8; - text-shadow: 0 1px 1px rgba(0, 0, 0, .2); - box-shadow: 0 1px 1px rgba(0, 0, 0, .2); - background: rgba(0, 0, 0, .2); - transition: all .1s ease -} - -.aplayer .aplayer-pic .aplayer-button path { - fill: #fff -} - -.aplayer .aplayer-pic .aplayer-hide { - display: none -} - -.aplayer .aplayer-pic .aplayer-play { - width: 26px; - height: 26px; - border: 2px solid #fff; - bottom: 50%; - right: 50%; - margin: 0 -15px -15px 0 -} - -.aplayer .aplayer-pic .aplayer-play svg { - position: absolute; - top: 3px; - left: 4px; - height: 20px; - width: 20px -} - -.aplayer .aplayer-pic .aplayer-pause { - width: 16px; - height: 16px; - border: 2px solid #fff; - bottom: 4px; - right: 4px -} - -.aplayer .aplayer-pic .aplayer-pause svg { - position: absolute; - top: 2px; - left: 2px; - height: 12px; - width: 12px -} - -.aplayer .aplayer-info { - margin-left: 66px; - padding: 14px 7px 0 10px; - height: 66px; - box-sizing: border-box -} - -.aplayer .aplayer-info .aplayer-music { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - margin: 0 0 13px 5px; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - cursor: default; - padding-bottom: 2px; - height: 20px -} - -.aplayer .aplayer-info .aplayer-music .aplayer-title { - font-size: 14px -} - -.aplayer .aplayer-info .aplayer-music .aplayer-author { - font-size: 12px; - color: #666 -} - -.aplayer .aplayer-info .aplayer-controller { - position: relative; - display: flex -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap { - margin: 0 0 0 5px; - padding: 4px 0; - cursor: pointer !important; - flex: 1 -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap:hover .aplayer-bar .aplayer-played .aplayer-thumb { - -webkit-transform: scale(1); - transform: scale(1) -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar { - position: relative; - height: 2px; - width: 100%; - background: #cdcdcd -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-loaded { - position: absolute; - left: 0; - top: 0; - bottom: 0; - background: #aaa; - height: 2px; - transition: all .5s ease -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played { - position: absolute; - left: 0; - top: 0; - bottom: 0; - height: 2px -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb { - position: absolute; - top: 0; - right: 5px; - margin-top: -4px; - margin-right: -10px; - height: 10px; - width: 10px; - border-radius: 50%; - cursor: pointer; - transition: all .3s ease-in-out; - -webkit-transform: scale(0); - transform: scale(0) -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-time { - position: relative; - right: 0; - bottom: 4px; - height: 17px; - color: #999; - font-size: 11px; - padding-left: 7px -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-time-inner { - vertical-align: middle -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon { - cursor: pointer; - transition: all .2s ease -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path { - fill: #666 -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-loop { - margin-right: 2px -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon:hover path { - fill: #000 -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-menu, -.aplayer .aplayer-info .aplayer-controller .aplayer-time.aplayer-time-narrow .aplayer-icon-menu, -.aplayer .aplayer-info .aplayer-controller .aplayer-time.aplayer-time-narrow .aplayer-icon-mode { - display: none -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap { - position: relative; - display: inline-block; - margin-left: 3px; - cursor: pointer !important -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap:hover .aplayer-volume-bar-wrap { - height: 40px -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap { - position: absolute; - bottom: 5px; - right: 6px; - width: 25px; - height: 0; - z-index: 99; - overflow: hidden; - transition: all .2s ease-in-out -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap.aplayer-volume-bar-wrap-active { - height: 40px -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap .aplayer-volume-bar { - position: absolute; - bottom: 0; - right: 10px; - width: 5px; - height: 35px; - background: var(--heo-white-op); - border-radius: 2.5px; - overflow: hidden -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap .aplayer-volume-bar .aplayer-volume { - position: absolute; - bottom: 0; - right: 0; - width: 5px; - transition: all .1s ease -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-loading-icon { - display: none -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-loading-icon svg { - position: absolute; - -webkit-animation: rotate 1s linear infinite; - animation: rotate 1s linear infinite -} - -.aplayer .aplayer-lrc { - display: none; - position: relative; - height: 30px; - text-align: center; - overflow: hidden; - margin: -10px 0 7px -} - -.aplayer .aplayer-lrc:before { - top: 0; - height: 10%; -} - -.aplayer .aplayer-lrc:after, -.aplayer .aplayer-lrc:before { - position: absolute; - z-index: 1; - display: block; - overflow: hidden; - width: 100%; - content: " " -} - -.aplayer .aplayer-lrc:after { - bottom: 0; - height: 33%; - background: linear-gradient(180deg, hsla(0, 0%, 100%, 0) 0, hsla(0, 0%, 100%, .8)); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#00ffffff", endColorstr="#ccffffff", GradientType=0) -} - -.aplayer .aplayer-lrc p { - font-size: 12px; - color: var(--heo-white); - padding: 0; - margin: 0; - transition: all .5s ease-out; - opacity: .4; - overflow: hidden -} - -.aplayer .aplayer-lrc p.aplayer-lrc-current { - opacity: 1; - overflow: inherit; - height: auto; -} - -.aplayer .aplayer-lrc.aplayer-lrc-hide { - display: none -} - -.aplayer .aplayer-lrc .aplayer-lrc-contents { - width: 100%; - transition: all .5s ease-out; - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; - cursor: default -} - -.aplayer .aplayer-list { - overflow: auto; - transition: all .5s ease; - will-change: height; - display: none; - overflow: hidden -} - -.aplayer .aplayer-list.aplayer-list-hide { - max-height: 0 !important -} - -.aplayer .aplayer-list ol { - list-style-type: none; - margin: 0; - padding: 0; - overflow-y: auto -} - -.aplayer .aplayer-list ol::-webkit-scrollbar { - width: 5px -} - -.aplayer .aplayer-list ol::-webkit-scrollbar-thumb { - border-radius: 3px; - background-color: #eee -} - -.aplayer .aplayer-list ol::-webkit-scrollbar-thumb:hover { - background-color: #ccc -} - -.aplayer .aplayer-list ol li { - position: relative; - height: 32px; - line-height: 32px; - padding: 0 15px; - font-size: 12px; - cursor: pointer; - transition: all .2s ease; - overflow: hidden; - margin: 1px 0; -} - -.aplayer .aplayer-list ol li:first-child { - border-top: none -} - -.aplayer .aplayer-list ol li:hover { - background: #efefef -} - -.aplayer .aplayer-list ol li.aplayer-list-light { - background: #e9e9e9 -} - -.aplayer .aplayer-list ol li.aplayer-list-light .aplayer-list-cur { - display: inline-block -} - -.aplayer .aplayer-list ol li .aplayer-list-cur { - display: none; - width: 3px; - height: 22px; - position: absolute; - left: 0; - top: 5px; - cursor: pointer -} - -.aplayer .aplayer-list ol li .aplayer-list-index { - color: var(--heo-white); - opacity: 0.6; - margin-right: 6px; - cursor: pointer -} - -.aplayer .aplayer-list ol li .aplayer-list-author { - color: #666; - float: right; - cursor: pointer -} - -.aplayer .aplayer-notice { - opacity: 0; - position: absolute; - top: 50%; - left: 50%; - -webkit-transform: translate(-50%, -50%); - transform: translate(-50%, -50%); - font-size: 12px; - border-radius: 4px; - padding: 5px 10px; - transition: all .3s ease-in-out; - overflow: hidden; - color: #fff; - pointer-events: none; - background-color: #f4f4f5; - color: #909399 -} - -.aplayer .aplayer-miniswitcher { - display: none; - position: absolute; - top: 0; - right: 0; - bottom: 0; - height: 100%; - background: #e6e6e6; - width: 18px; - border-radius: 0 2px 2px 0 -} - -.aplayer .aplayer-miniswitcher .aplayer-icon { - height: 100%; - width: 100%; - -webkit-transform: rotateY(180deg); - transform: rotateY(180deg); - transition: all .3s ease -} - -.aplayer .aplayer-miniswitcher .aplayer-icon path { - fill: #666 -} - -.aplayer .aplayer-miniswitcher .aplayer-icon:hover path { - fill: #000 -} - -@-webkit-keyframes aplayer-roll { - 0% { - left: 0 - } - - to { - left: -100% - } -} - -@keyframes aplayer-roll { - 0% { - left: 0 - } - - to { - left: -100% - } -} - -@-webkit-keyframes rotate { - 0% { - -webkit-transform: rotate(0); - transform: rotate(0) - } - - to { - -webkit-transform: rotate(1turn); - transform: rotate(1turn) - } -} - -@keyframes rotate { - 0% { - -webkit-transform: rotate(0); - transform: rotate(0) - } - - to { - -webkit-transform: rotate(1turn); - transform: rotate(1turn) - } -} - -/*# sourceMappingURL=APlayer.min.css.map*/ \ No newline at end of file diff --git a/music/css/APlayer.min.css b/music/css/APlayer.min.css deleted file mode 100644 index ff4dbac..0000000 --- a/music/css/APlayer.min.css +++ /dev/null @@ -1 +0,0 @@ -.aplayer{font-family:Arial,Helvetica,sans-serif;margin:5px;border-radius:2px;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal;position:relative}.aplayer *{box-sizing:content-box}.aplayer svg{width:100%;height:100%}.aplayer svg circle,.aplayer svg path{fill:#fff}.aplayer.aplayer-withlist .aplayer-info{border-bottom:1px solid #e9e9e9}.aplayer.aplayer-withlist .aplayer-list{display:block}.aplayer.aplayer-withlist .aplayer-icon-order,.aplayer.aplayer-withlist .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-menu{display:inline}.aplayer.aplayer-withlrc .aplayer-pic{height:90px;width:90px}.aplayer.aplayer-withlrc .aplayer-info{margin-left:90px;height:90px;}.aplayer.aplayer-withlrc .aplayer-lrc{display:block}.aplayer.aplayer-narrow{width:66px}.aplayer.aplayer-narrow .aplayer-info,.aplayer.aplayer-narrow .aplayer-list{display:none}.aplayer.aplayer-narrow .aplayer-body,.aplayer.aplayer-narrow .aplayer-pic{height:66px;width:66px}.aplayer.aplayer-fixed{position:fixed;bottom:0;left:0;right:0;margin:0;z-index:99;overflow:visible;max-width:400px;box-shadow:none}.aplayer.aplayer-fixed .aplayer-list{margin-bottom:65px;border:1px solid #eee;border-bottom:none}.aplayer.aplayer-fixed .aplayer-body{position:fixed;bottom:0;left:0;right:0;margin:0;z-index:99;background:#fff;padding-right:18px;transition:all .3s ease;max-width:400px}.aplayer.aplayer-fixed .aplayer-lrc{display:block;position:fixed;bottom:10px;left:0;right:0;margin:0;z-index:98;pointer-events:none;text-shadow:-1px -1px 0 #fff}.aplayer.aplayer-fixed .aplayer-lrc:after,.aplayer.aplayer-fixed .aplayer-lrc:before{display:none}.aplayer.aplayer-fixed .aplayer-info{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;transition:all .3s ease;border-bottom:none;border-top:1px solid #e9e9e9}.aplayer.aplayer-fixed .aplayer-info .aplayer-music{width:calc(100% - 105px)}.aplayer.aplayer-fixed .aplayer-miniswitcher{display:block}.aplayer.aplayer-fixed.aplayer-narrow .aplayer-info{display:block;-webkit-transform:scaleX(0);transform:scaleX(0)}.aplayer.aplayer-fixed.aplayer-narrow .aplayer-body{width:66px!important}.aplayer.aplayer-fixed.aplayer-narrow .aplayer-miniswitcher .aplayer-icon{-webkit-transform:rotateY(0);transform:rotateY(0)}.aplayer.aplayer-fixed .aplayer-icon-back,.aplayer.aplayer-fixed .aplayer-icon-forward,.aplayer.aplayer-fixed .aplayer-icon-lrc,.aplayer.aplayer-fixed .aplayer-icon-play{display:inline-block}.aplayer.aplayer-fixed .aplayer-icon-back,.aplayer.aplayer-fixed .aplayer-icon-forward,.aplayer.aplayer-fixed .aplayer-icon-menu,.aplayer.aplayer-fixed .aplayer-icon-play{position:absolute;bottom:27px;width:20px;height:20px}.aplayer.aplayer-fixed .aplayer-icon-back{right:75px}.aplayer.aplayer-fixed .aplayer-icon-play{right:50px}.aplayer.aplayer-fixed .aplayer-icon-forward{right:25px}.aplayer.aplayer-fixed .aplayer-icon-menu{right:0}.aplayer.aplayer-arrow .aplayer-icon-loop,.aplayer.aplayer-arrow .aplayer-icon-order,.aplayer.aplayer-mobile .aplayer-icon-volume-down{display:none}.aplayer.aplayer-loading .aplayer-info .aplayer-controller .aplayer-loading-icon{display:block}.aplayer.aplayer-loading .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb{-webkit-transform:scale(1);transform:scale(1)}.aplayer .aplayer-body{position:relative}.aplayer .aplayer-icon{width:15px;height:15px;border:none;background-color:transparent;outline:none;cursor:pointer;opacity:.8;vertical-align:middle;padding:0;font-size:12px;margin:0;display:inline-block;}.aplayer .aplayer-icon path{transition:all .2s ease-in-out}.aplayer .aplayer-icon-back,.aplayer .aplayer-icon-forward,.aplayer .aplayer-icon-lrc,.aplayer .aplayer-icon-order,.aplayer .aplayer-icon-play{display:none}.aplayer .aplayer-icon-lrc-inactivity svg{opacity:.4}.aplayer .aplayer-icon-forward{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.aplayer .aplayer-lrc-content{display:none}.aplayer .aplayer-pic{position:relative;float:left;height:66px;width:66px;background-size:cover;background-position:50%;transition:all .3s ease;cursor:pointer}.aplayer .aplayer-pic:hover .aplayer-button{opacity:1}.aplayer .aplayer-pic .aplayer-button{position:absolute;border-radius:50%;opacity:.8;text-shadow:0 1px 1px rgba(0,0,0,.2);box-shadow:0 1px 1px rgba(0,0,0,.2);background:rgba(0,0,0,.2);transition:all .1s ease}.aplayer .aplayer-pic .aplayer-button path{fill:#fff}.aplayer .aplayer-pic .aplayer-hide{display:none}.aplayer .aplayer-pic .aplayer-play{width:26px;height:26px;border:2px solid #fff;bottom:50%;right:50%;margin:0 -15px -15px 0}.aplayer .aplayer-pic .aplayer-play svg{position:absolute;top:3px;left:4px;height:20px;width:20px}.aplayer .aplayer-pic .aplayer-pause{width:16px;height:16px;border:2px solid #fff;bottom:4px;right:4px}.aplayer .aplayer-pic .aplayer-pause svg{position:absolute;top:2px;left:2px;height:12px;width:12px}.aplayer .aplayer-info{margin-left:66px;padding:14px 7px 0 10px;height:66px;box-sizing:border-box}.aplayer .aplayer-info .aplayer-music{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin:0 0 13px 5px;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;cursor:default;padding-bottom:2px;height:20px}.aplayer .aplayer-info .aplayer-music .aplayer-title{font-size:14px}.aplayer .aplayer-info .aplayer-music .aplayer-author{font-size:12px;color:#666}.aplayer .aplayer-info .aplayer-controller{position:relative;display:flex}.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap{margin:0 0 0 5px;padding:4px 0;cursor:pointer!important;flex:1}.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap:hover .aplayer-bar .aplayer-played .aplayer-thumb{-webkit-transform:scale(1);transform:scale(1)}.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar{position:relative;height:2px;width:100%;background:#cdcdcd}.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-loaded{position:absolute;left:0;top:0;bottom:0;background:#aaa;height:2px;transition:all .5s ease}.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played{position:absolute;left:0;top:0;bottom:0;height:2px}.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:10px;width:10px;border-radius:50%;cursor:pointer;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.aplayer .aplayer-info .aplayer-controller .aplayer-time{position:relative;right:0;bottom:4px;height:17px;color:#999;font-size:11px;padding-left:7px}.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-time-inner{vertical-align:middle}.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon{cursor:pointer;transition:all .2s ease}.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path{fill:#666}.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-loop{margin-right:2px}.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon:hover path{fill:#000}.aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-menu,.aplayer .aplayer-info .aplayer-controller .aplayer-time.aplayer-time-narrow .aplayer-icon-menu,.aplayer .aplayer-info .aplayer-controller .aplayer-time.aplayer-time-narrow .aplayer-icon-mode{display:none}.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap{position:relative;display:inline-block;margin-left:3px;cursor:pointer!important}.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap:hover .aplayer-volume-bar-wrap{height:40px}.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap{position:absolute;bottom:5px;right:6px;width:25px;height:0;z-index:99;overflow:hidden;transition:all .2s ease-in-out}.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap.aplayer-volume-bar-wrap-active{height:40px}.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap .aplayer-volume-bar{position:absolute;bottom:0;right:10px;width:5px;height:35px;background:var(--heo-white-op);border-radius:2.5px;overflow:hidden}.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap .aplayer-volume-bar .aplayer-volume{position:absolute;bottom:0;right:0;width:5px;transition:all .1s ease}.aplayer .aplayer-info .aplayer-controller .aplayer-loading-icon{display:none}.aplayer .aplayer-info .aplayer-controller .aplayer-loading-icon svg{position:absolute;-webkit-animation:rotate 1s linear infinite;animation:rotate 1s linear infinite}.aplayer .aplayer-lrc{display:none;position:relative;height:30px;text-align:center;overflow:hidden;margin:-10px 0 7px}.aplayer .aplayer-lrc:before{top:0;height:10%;}.aplayer .aplayer-lrc:after,.aplayer .aplayer-lrc:before{position:absolute;z-index:1;display:block;overflow:hidden;width:100%;content:" "}.aplayer .aplayer-lrc:after{bottom:0;height:33%;background:linear-gradient(180deg,hsla(0,0%,100%,0) 0,hsla(0,0%,100%,.8));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#00ffffff",endColorstr="#ccffffff",GradientType=0)}.aplayer .aplayer-lrc p{font-size:12px;color:var(--heo-white);padding:0;margin:0;transition:all .5s ease-out;opacity:.4;overflow:hidden}.aplayer .aplayer-lrc p.aplayer-lrc-current{opacity:1;overflow:inherit;height:auto;}.aplayer .aplayer-lrc.aplayer-lrc-hide{display:none}.aplayer .aplayer-lrc .aplayer-lrc-contents{width:100%;transition:all .5s ease-out;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;cursor:default}.aplayer .aplayer-list{overflow:auto;transition:all .5s ease;will-change:height;display:none;overflow:hidden}.aplayer .aplayer-list.aplayer-list-hide{max-height:0!important}.aplayer .aplayer-list ol{list-style-type:none;margin:0;padding:0;overflow-y:auto}.aplayer .aplayer-list ol::-webkit-scrollbar{width:5px}.aplayer .aplayer-list ol::-webkit-scrollbar-thumb{border-radius:3px;background-color:#eee}.aplayer .aplayer-list ol::-webkit-scrollbar-thumb:hover{background-color:#ccc}.aplayer .aplayer-list ol li{position:relative;height:32px;line-height:32px;padding:0 15px;font-size:12px;cursor:pointer;transition:all .2s ease;overflow:hidden;margin:1px 0;}.aplayer .aplayer-list ol li:first-child{border-top:none}.aplayer .aplayer-list ol li:hover{background:#efefef}.aplayer .aplayer-list ol li.aplayer-list-light{background:#e9e9e9}.aplayer .aplayer-list ol li.aplayer-list-light .aplayer-list-cur{display:inline-block}.aplayer .aplayer-list ol li .aplayer-list-cur{display:none;width:3px;height:22px;position:absolute;left:0;top:5px;cursor:pointer}.aplayer .aplayer-list ol li .aplayer-list-index{color:var(--heo-white);opacity:.6;margin-right:6px;cursor:pointer}.aplayer .aplayer-list ol li .aplayer-list-author{color:#666;float:right;cursor:pointer}.aplayer .aplayer-notice{opacity:0;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);font-size:12px;border-radius:4px;padding:5px 10px;transition:all .3s ease-in-out;overflow:hidden;color:#fff;pointer-events:none;background-color:#f4f4f5;color:#909399}.aplayer .aplayer-miniswitcher{display:none;position:absolute;top:0;right:0;bottom:0;height:100%;background:#e6e6e6;width:18px;border-radius:0 2px 2px 0}.aplayer .aplayer-miniswitcher .aplayer-icon{height:100%;width:100%;-webkit-transform:rotateY(180deg);transform:rotateY(180deg);transition:all .3s ease}.aplayer .aplayer-miniswitcher .aplayer-icon path{fill:#666}.aplayer .aplayer-miniswitcher .aplayer-icon:hover path{fill:#000}@-webkit-keyframes aplayer-roll{0%{left:0}to{left:-100%}}@keyframes aplayer-roll{0%{left:0}to{left:-100%}}@-webkit-keyframes rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}} \ No newline at end of file diff --git a/music/help.html b/music/help.html deleted file mode 100644 index 226ec07..0000000 --- a/music/help.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -帮助图标 -

使用教程

-

参数讲解

-

ID

-

播放列表的id,可以从音乐歌单分享的链接中获取,例如https://y.qq.com/n/ryqq/playlist/8668419170中,id为8668419170

- -

Server

-

播放列表的服务商,例如netease(网易云音乐),tencent(腾讯),kugou(酷狗),xiami(小米音乐),baidu(百度音乐)

- -

Type(可选)

-

播放列表的类型,例如song(单曲), playlist(歌单,默认), album(专辑), search(搜索结果), artist(歌手)

- -

使用URL参数

-

本播放器支持URL参数 https://music.zhheo.com/?id=+ id +&server= + server

-

例如:

-

HeoMusicTop: https://music.zhheo.com/?id=8668419170&server=tencent

-

鸡你太美: https://music.zhheo.com/?id=2762963245&server=netease

\ No newline at end of file diff --git a/music/icon1.png b/music/icon1.png deleted file mode 100644 index 86a8ff4..0000000 Binary files a/music/icon1.png and /dev/null differ diff --git a/music/icon2.png b/music/icon2.png deleted file mode 100644 index 004b7f0..0000000 Binary files a/music/icon2.png and /dev/null differ diff --git a/music/img/cover.webp b/music/img/cover.webp deleted file mode 100644 index 42cb4ff..0000000 Binary files a/music/img/cover.webp and /dev/null differ diff --git a/music/img/help.webp b/music/img/help.webp deleted file mode 100644 index 9a0ce0b..0000000 Binary files a/music/img/help.webp and /dev/null differ diff --git a/music/img/icon-r.png b/music/img/icon-r.png deleted file mode 100644 index 990a587..0000000 Binary files a/music/img/icon-r.png and /dev/null differ diff --git a/music/img/icon-r.webp b/music/img/icon-r.webp deleted file mode 100644 index edd6589..0000000 Binary files a/music/img/icon-r.webp and /dev/null differ diff --git a/music/img/icon-r_mini.png b/music/img/icon-r_mini.png deleted file mode 100644 index 1a87a48..0000000 Binary files a/music/img/icon-r_mini.png and /dev/null differ diff --git a/music/img/icon.webp b/music/img/icon.webp deleted file mode 100644 index 9443fd7..0000000 Binary files a/music/img/icon.webp and /dev/null differ diff --git a/music/index.html b/music/index.html deleted file mode 100644 index a913f24..0000000 --- a/music/index.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - HeoMusic - 用音乐感染人心 - - - - - - - - - - - - -
-
-
- - - - - \ No newline at end of file diff --git a/music/js/APlayer.min.js b/music/js/APlayer.min.js deleted file mode 100644 index 7d3311b..0000000 --- a/music/js/APlayer.min.js +++ /dev/null @@ -1,1547 +0,0 @@ -!function (e, t) { - "object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define("APlayer", [], t) : "object" == typeof exports ? exports.APlayer = t() : e.APlayer = t() -}(window, function () { - return function (e) { - var t = {}; - - function n(i) { - if (t[i]) return t[i].exports; - var a = t[i] = { - i: i, - l: !1, - exports: {} - }; - return e[i].call(a.exports, a, a.exports, n), a.l = !0, a.exports - } - return n.m = e, n.c = t, n.d = function (e, t, i) { - n.o(e, t) || Object.defineProperty(e, t, { - configurable: !1, - enumerable: !0, - get: i - }) - }, n.r = function (e) { - Object.defineProperty(e, "__esModule", { - value: !0 - }) - }, n.n = function (e) { - var t = e && e.__esModule ? function () { - return e.default - } : function () { - return e - }; - return n.d(t, "a", t), t - }, n.o = function (e, t) { - return Object.prototype.hasOwnProperty.call(e, t) - }, n.p = "/", n(n.s = 41) - }([function (e, t, n) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - var i = /mobile/i.test(window.navigator.userAgent), - a = { - secondToTime: function (e) { - var t = Math.floor(e / 3600), - n = Math.floor((e - 3600 * t) / 60), - i = Math.floor(e - 3600 * t - 60 * n); - return (t > 0 ? [t, n, i] : [n, i]).map(function (e) { - return e < 10 ? "0" + e : "" + e - }).join(":") - }, - getElementViewLeft: function (e) { - var t = e.offsetLeft, - n = e.offsetParent, - i = document.body.scrollLeft + document.documentElement.scrollLeft; - if (document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement) - for (; null !== n && n !== e;) t += n.offsetLeft, n = n.offsetParent; - else - for (; null !== n;) t += n.offsetLeft, n = n.offsetParent; - return t - i - }, - getElementViewTop: function (e, t) { - for (var n, i = e.offsetTop, a = e.offsetParent; null !== a;) i += a.offsetTop, a = a.offsetParent; - return n = document.body.scrollTop + document.documentElement.scrollTop, t ? i : i - n - }, - isMobile: i, - storage: { - set: function (e, t) { - localStorage.setItem(e, t) - }, - get: function (e) { - return localStorage.getItem(e) - } - }, - nameMap: { - dragStart: i ? "touchstart" : "mousedown", - dragMove: i ? "touchmove" : "mousemove", - dragEnd: i ? "touchend" : "mouseup" - }, - randomOrder: function (e) { - return function (e) { - for (var t = e.length - 1; t >= 0; t--) { - var n = Math.floor(Math.random() * (t + 1)), - i = e[n]; - e[n] = e[t], e[t] = i - } - return e - }([].concat(function (e) { - if (Array.isArray(e)) { - for (var t = 0, n = Array(e.length); t < e.length; t++) n[t] = e[t]; - return n - } - return Array.from(e) - }(Array(e))).map(function (e, t) { - return t - })) - } - }; - t.default = a - }, function (e, t, n) { - var i = n(2); - e.exports = function (e) { - "use strict"; - e = e || {}; - var t = "", - n = i.$each, - a = e.audio, - r = (e.$value, e.$index, i.$escape), - o = e.theme, - s = e.index; - return n(a, function (e, n) { - t += '\n
  • \n \n ', t += r(n + s), t += '\n ', t += r(e.name), t += '\n ', t += r(e.artist), t += "\n
  • \n" - }), t - } - }, function (e, t, n) { - "use strict"; - e.exports = n(15) - }, function (e, t, n) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - var i = g(n(33)), - a = g(n(32)), - r = g(n(31)), - o = g(n(30)), - s = g(n(29)), - l = g(n(28)), - u = g(n(27)), - c = g(n(26)), - p = g(n(25)), - d = g(n(24)), - h = g(n(23)), - y = g(n(22)), - f = g(n(21)), - v = g(n(20)), - m = g(n(19)); - - function g(e) { - return e && e.__esModule ? e : { - default: e - } - } - var w = { - play: i.default, - pause: a.default, - volumeUp: r.default, - volumeDown: o.default, - volumeOff: s.default, - orderRandom: l.default, - orderList: u.default, - menu: c.default, - loopAll: p.default, - loopOne: d.default, - loopNone: h.default, - loading: y.default, - right: f.default, - skip: v.default, - lrc: m.default - }; - t.default = w - }, function (e, t, n) { - "use strict"; - var i, a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { - return typeof e - } : function (e) { - return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e - }; - i = function () { - return this - }(); - try { - i = i || Function("return this")() || (0, eval)("this") - } catch (e) { - "object" === ("undefined" == typeof window ? "undefined" : a(window)) && (i = window) - } - e.exports = i - }, function (e, t, n) { - "use strict"; - var i, a, r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { - return typeof e - } : function (e) { - return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e - }; - void 0 === (a = "function" == typeof (i = function () { - if ("object" === ("undefined" == typeof window ? "undefined" : r(window)) && void 0 !== document.querySelectorAll && void 0 !== window.pageYOffset && void 0 !== history.pushState) { - var e = function (e, t, n, i) { - return n > i ? t : e + (t - e) * ((a = n / i) < .5 ? 4 * a * a * a : (a - 1) * (2 * a - 2) * (2 * a - 2) + 1); - var a - }, - t = function (t, n, i, a) { - n = n || 500; - var r = (a = a || window).scrollTop || window.pageYOffset; - if ("number" == typeof t) var o = parseInt(t); - else var o = function (e, t) { - return "HTML" === e.nodeName ? -t : e.getBoundingClientRect().top + t - }(t, r); - var s = Date.now(), - l = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function (e) { - window.setTimeout(e, 15) - }; - ! function u() { - var c = Date.now() - s; - a !== window ? a.scrollTop = e(r, o, c, n) : window.scroll(0, e(r, o, c, n)), c > n ? "function" == typeof i && i(t) : l(u) - }() - }, - n = function (e) { - if (!e.defaultPrevented) { - e.preventDefault(), location.hash !== this.hash && window.history.pushState(null, null, this.hash); - var n = document.getElementById(this.hash.substring(1)); - if (!n) return; - t(n, 500, function (e) { - location.replace("#" + e.id) - }) - } - }; - return document.addEventListener("DOMContentLoaded", function () { - for (var e, t = document.querySelectorAll('a[href^="#"]:not([href="#"])'), i = t.length; e = t[--i];) e.addEventListener("click", n, !1) - }), t - } - }) ? i.call(t, n, t, e) : i) || (e.exports = a) - }, function (e, t, n) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - var i = function () { - function e(e, t) { - for (var n = 0; n < t.length; n++) { - var i = t[n]; - i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) - } - } - return function (t, n, i) { - return n && e(t.prototype, n), i && e(t, i), t - } - }(), - a = s(n(1)), - r = s(n(0)), - o = s(n(5)); - - function s(e) { - return e && e.__esModule ? e : { - default: e - } - } - var l = function () { - function e(t) { - ! function (e, t) { - if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") - }(this, e), this.player = t, this.index = 0, this.audios = this.player.options.audio, this.bindEvents() - } - return i(e, [{ - key: "bindEvents", - value: function () { - var e = this; - this.player.template.list.addEventListener("click", function (t) { - var n = void 0; - n = "LI" === t.target.tagName.toUpperCase() ? t.target : t.target.parentElement; - var i = parseInt(n.getElementsByClassName("aplayer-list-index")[0].innerHTML) - 1; - i !== e.index ? (e.switch(i), e.player.play()) : e.player.toggle() - }) - } - }, { - key: "show", - value: function () { - this.player.events.trigger("listshow"), this.player.template.list.classList.remove("aplayer-list-hide"), this.player.template.listOl.scrollTop = 33 * this.index - } - }, { - key: "hide", - value: function () { - this.player.events.trigger("listhide"), this.player.template.list.classList.add("aplayer-list-hide") - } - }, { - key: "toggle", - value: function () { - this.player.template.list.classList.contains("aplayer-list-hide") ? this.show() : this.hide() - } - }, { - key: "add", - value: function (e) { - this.player.events.trigger("listadd", { - audios: e - }), "[object Array]" !== Object.prototype.toString.call(e) && (e = [e]), e.map(function (e) { - return e.name = e.name || e.title || "Audio name", e.artist = e.artist || e.author || "Audio artist", e.cover = e.cover || e.pic, e.type = e.type || "normal", e - }); - var t = !(this.audios.length > 1), - n = 0 === this.audios.length; - this.player.template.listOl.innerHTML += (0, a.default)({ - theme: this.player.options.theme, - audio: e, - index: this.audios.length + 1 - }), this.audios = this.audios.concat(e), t && this.audios.length > 1 && this.player.container.classList.add("aplayer-withlist"), this.player.randomOrder = r.default.randomOrder(this.audios.length), this.player.template.listCurs = this.player.container.querySelectorAll(".aplayer-list-cur"), this.player.template.listCurs[this.audios.length - 1].style.backgroundColor = e.theme || this.player.options.theme, n && ("random" === this.player.options.order ? this.switch(this.player.randomOrder[0]) : this.switch(0)) - } - }, { - key: "remove", - value: function (e) { - if (this.player.events.trigger("listremove", { - index: e - }), this.audios[e]) - if (this.audios.length > 1) { - var t = this.player.container.querySelectorAll(".aplayer-list li"); - t[e].remove(), this.audios.splice(e, 1), this.player.lrc && this.player.lrc.remove(e), e === this.index && (this.audios[e] ? this.switch(e) : this.switch(e - 1)), this.index > e && this.index--; - for (var n = e; n < t.length; n++) t[n].getElementsByClassName("aplayer-list-index")[0].textContent = n; - 1 === this.audios.length && this.player.container.classList.remove("aplayer-withlist"), this.player.template.listCurs = this.player.container.querySelectorAll(".aplayer-list-cur") - } else this.clear() - } - }, { - key: "switch", - value: function (e) { - if (this.player.events.trigger("listswitch", { - index: e - }), void 0 !== e && this.audios[e]) { - this.index = e; - var t = this.audios[this.index]; - this.player.template.pic.style.backgroundImage = t.cover ? "url('" + t.cover + "')" : "", this.player.theme(this.audios[this.index].theme || this.player.options.theme, this.index, !1), this.player.template.title.innerHTML = t.name, this.player.template.author.innerHTML = t.artist ? " - " + t.artist : ""; - var n = this.player.container.getElementsByClassName("aplayer-list-light")[0]; - n && n.classList.remove("aplayer-list-light"), this.player.container.querySelectorAll(".aplayer-list li")[this.index].classList.add("aplayer-list-light"), (0, o.default)(33 * this.index, 500, null, this.player.template.listOl), this.player.setAudio(t), this.player.lrc && this.player.lrc.switch(this.index), this.player.lrc && this.player.lrc.update(0), 1 !== this.player.duration && (this.player.template.dtime.innerHTML = r.default.secondToTime(this.player.duration)) - } - } - }, { - key: "clear", - value: function () { - this.player.events.trigger("listclear"), this.index = 0, this.player.container.classList.remove("aplayer-withlist"), this.player.pause(), this.audios = [], this.player.lrc && this.player.lrc.clear(), this.player.audio.src = "", this.player.template.listOl.innerHTML = "", this.player.template.pic.style.backgroundImage = "", this.player.theme(this.player.options.theme, this.index, !1), this.player.template.title.innerHTML = "No audio", this.player.template.author.innerHTML = "", this.player.bar.set("loaded", 0, "width"), this.player.template.dtime.innerHTML = r.default.secondToTime(0) - } - }]), e - }(); - t.default = l - }, function (e, t, n) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - var i = function () { - function e(e, t) { - for (var n = 0; n < t.length; n++) { - var i = t[n]; - i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) - } - } - return function (t, n, i) { - return n && e(t.prototype, n), i && e(t, i), t - } - }(); - var a = function () { - function e() { - ! function (e, t) { - if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") - }(this, e), this.events = {}, this.audioEvents = ["abort", "canplay", "canplaythrough", "durationchange", "emptied", "ended", "error", "loadeddata", "loadedmetadata", "loadstart", "mozaudioavailable", "pause", "play", "playing", "progress", "ratechange", "seeked", "seeking", "stalled", "suspend", "timeupdate", "volumechange", "waiting"], this.playerEvents = ["destroy", "listshow", "listhide", "listadd", "listremove", "listswitch", "listclear", "noticeshow", "noticehide", "lrcshow", "lrchide"] - } - return i(e, [{ - key: "on", - value: function (e, t) { - this.type(e) && "function" == typeof t && (this.events[e] || (this.events[e] = []), this.events[e].push(t)) - } - }, { - key: "trigger", - value: function (e, t) { - if (this.events[e] && this.events[e].length) - for (var n = 0; n < this.events[e].length; n++) this.events[e][n](t) - } - }, { - key: "type", - value: function (e) { - return -1 !== this.playerEvents.indexOf(e) ? "player" : -1 !== this.audioEvents.indexOf(e) ? "audio" : (console.error("Unknown event name: " + e), null) - } - }]), e - }(); - t.default = a - }, function (e, t, n) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - var i = function () { - function e(e, t) { - for (var n = 0; n < t.length; n++) { - var i = t[n]; - i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) - } - } - return function (t, n, i) { - return n && e(t.prototype, n), i && e(t, i), t - } - }(); - var a = function () { - function e(t) { - ! function (e, t) { - if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") - }(this, e), this.player = t, window.requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (e) { - window.setTimeout(e, 1e3 / 60) - }, this.types = ["loading"], this.init() - } - return i(e, [{ - key: "init", - value: function () { - var e = this; - this.types.forEach(function (t) { - e["init" + t + "Checker"]() - }) - } - }, { - key: "initloadingChecker", - value: function () { - var e = this, - t = 0, - n = 0, - i = !1; - this.loadingChecker = setInterval(function () { - e.enableloadingChecker && (n = e.player.audio.currentTime, i || n !== t || e.player.audio.paused || (e.player.container.classList.add("aplayer-loading"), i = !0), i && n > t && !e.player.audio.paused && (e.player.container.classList.remove("aplayer-loading"), i = !1), t = n) - }, 100) - } - }, { - key: "enable", - value: function (e) { - this["enable" + e + "Checker"] = !0, "fps" === e && this.initfpsChecker() - } - }, { - key: "disable", - value: function (e) { - this["enable" + e + "Checker"] = !1 - } - }, { - key: "destroy", - value: function () { - var e = this; - this.types.forEach(function (t) { - e["enable" + t + "Checker"] = !1, e[t + "Checker"] && clearInterval(e[t + "Checker"]) - }) - } - }]), e - }(); - t.default = a - }, function (e, t, n) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - var i = function () { - function e(e, t) { - for (var n = 0; n < t.length; n++) { - var i = t[n]; - i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) - } - } - return function (t, n, i) { - return n && e(t.prototype, n), i && e(t, i), t - } - }(), - a = o(n(0)), - r = o(n(3)); - - function o(e) { - return e && e.__esModule ? e : { - default: e - } - } - var s = function () { - function e(t) { - ! function (e, t) { - if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") - }(this, e), this.player = t, this.initPlayButton(), this.initPlayBar(), this.initOrderButton(), this.initLoopButton(), this.initMenuButton(), a.default.isMobile || this.initVolumeButton(), this.initMiniSwitcher(), this.initSkipButton(), this.initLrcButton() - } - return i(e, [{ - key: "initPlayButton", - value: function () { - var e = this; - this.player.template.pic.addEventListener("click", function () { - e.player.toggle() - }) - } - }, { - key: "initPlayBar", - value: function () { - var e = this, - t = function (t) { - var n = ((t.clientX || t.changedTouches[0].clientX) - a.default.getElementViewLeft(e.player.template.barWrap)) / e.player.template.barWrap.clientWidth; - n = Math.max(n, 0), n = Math.min(n, 1), e.player.bar.set("played", n, "width"), e.player.lrc && e.player.lrc.update(n * e.player.duration), e.player.template.ptime.innerHTML = a.default.secondToTime(n * e.player.duration) - }, - n = function n(i) { - document.removeEventListener(a.default.nameMap.dragEnd, n), document.removeEventListener(a.default.nameMap.dragMove, t); - var r = ((i.clientX || i.changedTouches[0].clientX) - a.default.getElementViewLeft(e.player.template.barWrap)) / e.player.template.barWrap.clientWidth; - r = Math.max(r, 0), r = Math.min(r, 1), e.player.bar.set("played", r, "width"), e.player.seek(e.player.bar.get("played", "width") * e.player.duration), e.player.disableTimeupdate = !1 - }; - this.player.template.barWrap.addEventListener(a.default.nameMap.dragStart, function () { - e.player.disableTimeupdate = !0, document.addEventListener(a.default.nameMap.dragMove, t), document.addEventListener(a.default.nameMap.dragEnd, n) - }) - } - }, { - key: "initVolumeButton", - value: function () { - var e = this; - this.player.template.volumeButton.addEventListener("click", function () { - e.player.audio.muted ? (e.player.audio.muted = !1, e.player.switchVolumeIcon(), e.player.bar.set("volume", e.player.volume(), "height")) : (e.player.audio.muted = !0, e.player.switchVolumeIcon(), e.player.bar.set("volume", 0, "height")) - }); - var t = function (t) { - var n = 1 - ((t.clientY || t.changedTouches[0].clientY) - a.default.getElementViewTop(e.player.template.volumeBar, e.player.options.fixed)) / e.player.template.volumeBar.clientHeight; - n = Math.max(n, 0), n = Math.min(n, 1), e.player.volume(n) - }, - n = function n(i) { - e.player.template.volumeBarWrap.classList.remove("aplayer-volume-bar-wrap-active"), document.removeEventListener(a.default.nameMap.dragEnd, n), document.removeEventListener(a.default.nameMap.dragMove, t); - var r = 1 - ((i.clientY || i.changedTouches[0].clientY) - a.default.getElementViewTop(e.player.template.volumeBar, e.player.options.fixed)) / e.player.template.volumeBar.clientHeight; - r = Math.max(r, 0), r = Math.min(r, 1), e.player.volume(r) - }; - this.player.template.volumeBarWrap.addEventListener(a.default.nameMap.dragStart, function () { - e.player.template.volumeBarWrap.classList.add("aplayer-volume-bar-wrap-active"), document.addEventListener(a.default.nameMap.dragMove, t), document.addEventListener(a.default.nameMap.dragEnd, n) - }) - } - }, { - key: "initOrderButton", - value: function () { - var e = this; - this.player.template.order.addEventListener("click", function () { - "list" === e.player.options.order ? (e.player.options.order = "random", e.player.template.order.innerHTML = r.default.orderRandom) : "random" === e.player.options.order && (e.player.options.order = "list", e.player.template.order.innerHTML = r.default.orderList) - }) - } - }, { - key: "initLoopButton", - value: function () { - var e = this; - this.player.template.loop.addEventListener("click", function () { - e.player.list.audios.length > 1 ? "one" === e.player.options.loop ? (e.player.options.loop = "none", e.player.template.loop.innerHTML = r.default.loopNone) : "none" === e.player.options.loop ? (e.player.options.loop = "all", e.player.template.loop.innerHTML = r.default.loopAll) : "all" === e.player.options.loop && (e.player.options.loop = "one", e.player.template.loop.innerHTML = r.default.loopOne) : "one" === e.player.options.loop || "all" === e.player.options.loop ? (e.player.options.loop = "none", e.player.template.loop.innerHTML = r.default.loopNone) : "none" === e.player.options.loop && (e.player.options.loop = "all", e.player.template.loop.innerHTML = r.default.loopAll) - }) - } - }, { - key: "initMenuButton", - value: function () { - var e = this; - this.player.template.menu.addEventListener("click", function () { - e.player.list.toggle() - }); - document.querySelector(".aplayer-lrc").addEventListener("click", function() { - e.player.list.toggle() - }); - } - }, { - key: "initMiniSwitcher", - value: function () { - var e = this; - this.player.template.miniSwitcher.addEventListener("click", function () { - e.player.setMode("mini" === e.player.mode ? "normal" : "mini") - }) - } - }, { - key: "initSkipButton", - value: function () { - var e = this; - this.player.template.skipBackButton.addEventListener("click", function () { - e.player.skipBack() - }), this.player.template.skipForwardButton.addEventListener("click", function () { - e.player.skipForward() - }), this.player.template.skipPlayButton.addEventListener("click", function () { - e.player.toggle() - }) - } - }, { - key: "initLrcButton", - value: function () { - var e = this; - this.player.template.lrcButton.addEventListener("click", function () { - e.player.template.lrcButton.classList.contains("aplayer-icon-lrc-inactivity") ? (e.player.template.lrcButton.classList.remove("aplayer-icon-lrc-inactivity"), e.player.lrc && e.player.lrc.show()) : (e.player.template.lrcButton.classList.add("aplayer-icon-lrc-inactivity"), e.player.lrc && e.player.lrc.hide()) - }) - } - }]), e - }(); - t.default = s - }, function (e, t, n) { - var i = n(2); - e.exports = function (e) { - "use strict"; - e = e || {}; - var t = "", - n = i.$each, - a = e.lyrics, - r = (e.$value, e.$index, i.$escape); - return n(a, function (e, n) { - t += "\n 0 && void 0 !== arguments[0] ? arguments[0] : this.player.audio.currentTime; - if (this.index > this.current.length - 1 || e < this.current[this.index][0] || !this.current[this.index + 1] || e >= this.current[this.index + 1][0]) - for (var t = 0; t < this.current.length; t++) e >= this.current[t][0] && (!this.current[t + 1] || e < this.current[t + 1][0]) && (this.index = t, this.container.style.transform = "translateY(" + 80 * -this.index + "px)", this.container.style.webkitTransform = "translateY(" + 80 * -this.index + "px)", this.container.getElementsByClassName("aplayer-lrc-current")[0].classList.remove("aplayer-lrc-current"), this.container.getElementsByTagName("p")[t].classList.add("aplayer-lrc-current")) - } - }, { - key: "switch", - value: function (e) { - var t = this; - if (!this.parsed[e]) - if (this.async) { - this.parsed[e] = [ - ["00:00", "Loading"] - ]; - var n = new XMLHttpRequest; - n.onreadystatechange = function () { - e === t.player.list.index && 4 === n.readyState && (n.status >= 200 && n.status < 300 || 304 === n.status ? t.parsed[e] = t.parse(n.responseText) : (t.player.notice("LRC file request fails: status " + n.status), t.parsed[e] = [ - ["00:00", "Not available"] - ]), t.container.innerHTML = (0, o.default)({ - lyrics: t.parsed[e] - }), t.update(0), t.current = t.parsed[e]) - }; - var i = this.player.list.audios[e].lrc; - n.open("get", i, !0), n.send(null) - } else this.player.list.audios[e].lrc ? this.parsed[e] = this.parse(this.player.list.audios[e].lrc) : this.parsed[e] = [ - ["00:00", "Not available"] - ]; - this.container.innerHTML = (0, o.default)({ - lyrics: this.parsed[e] - }), this.update(0), this.current = this.parsed[e] - } - }, { - key: "parse", - value: function (e) { - if (e) { - for (var t = (e = e.replace(/([^\]^\n])\[/g, function (e, t) { - return t + "\n[" - })).split("\n"), n = [], i = t.length, a = 0; a < i; a++) { - var r = t[a].match(/\[(\d{2}):(\d{2})(\.(\d{2,3}))?]/g), - o = t[a].replace(/.*\[(\d{2}):(\d{2})(\.(\d{2,3}))?]/g, "").replace(/<(\d{2}):(\d{2})(\.(\d{2,3}))?>/g, "").replace(/^\s+|\s+$/g, ""); - if (r) - for (var s = r.length, l = 0; l < s; l++) { - var u = /\[(\d{2}):(\d{2})(\.(\d{2,3}))?]/.exec(r[l]), - c = 60 * u[1] + parseInt(u[2]) + (u[4] ? parseInt(u[4]) / (2 === (u[4] + "").length ? 100 : 1e3) : 0); - n.push([c, o]) - } - } - return (n = n.filter(function (e) { - return e[1] - })).sort(function (e, t) { - return e[0] - t[0] - }), n - } - return [] - } - }, { - key: "remove", - value: function (e) { - this.parsed.splice(e, 1) - } - }, { - key: "clear", - value: function () { - this.parsed = [], this.container.innerHTML = "" - } - }]), e - }(); - t.default = s - }, function (e, t, n) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - var i, a = function () { - function e(e, t) { - for (var n = 0; n < t.length; n++) { - var i = t[n]; - i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) - } - } - return function (t, n, i) { - return n && e(t.prototype, n), i && e(t, i), t - } - }(), - r = n(0), - o = (i = r) && i.__esModule ? i : { - default: i - }; - var s = function () { - function e(t) { - ! function (e, t) { - if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") - }(this, e), this.storageName = t.options.storageName, this.data = JSON.parse(o.default.storage.get(this.storageName)), this.data || (this.data = {}), this.data.volume = this.data.volume || t.options.volume - } - return a(e, [{ - key: "get", - value: function (e) { - return this.data[e] - } - }, { - key: "set", - value: function (e, t) { - this.data[e] = t, o.default.storage.set(this.storageName, JSON.stringify(this.data)) - } - }]), e - }(); - t.default = s - }, function (e, t, n) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - var i = function () { - function e(e, t) { - for (var n = 0; n < t.length; n++) { - var i = t[n]; - i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) - } - } - return function (t, n, i) { - return n && e(t.prototype, n), i && e(t, i), t - } - }(); - var a = function () { - function e(t) { - ! function (e, t) { - if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") - }(this, e), this.elements = {}, this.elements.volume = t.volume, this.elements.played = t.played, this.elements.loaded = t.loaded - } - return i(e, [{ - key: "set", - value: function (e, t, n) { - t = Math.max(t, 0), t = Math.min(t, 1), this.elements[e].style[n] = 100 * t + "%" - } - }, { - key: "get", - value: function (e, t) { - return parseFloat(this.elements[e].style[t]) / 100 - } - }]), e - }(); - t.default = a - }, function (e, t, n) { - "use strict"; - (function (t) { - e.exports = !1; - try { - e.exports = "[object process]" === Object.prototype.toString.call(t.process) - } catch (e) {} - }).call(this, n(4)) - }, function (e, t, n) { - "use strict"; - (function (t) { - var i = n(14), - a = Object.create(i ? t : window), - r = /["&'<>]/; - a.$escape = function (e) { - return function (e) { - var t = "" + e, - n = r.exec(t); - if (!n) return e; - var i = "", - a = void 0, - o = void 0, - s = void 0; - for (a = n.index, o = 0; a < t.length; a++) { - switch (t.charCodeAt(a)) { - case 34: - s = """; - break; - case 38: - s = "&"; - break; - case 39: - s = "'"; - break; - case 60: - s = "<"; - break; - case 62: - s = ">"; - break; - default: - continue - } - o !== a && (i += t.substring(o, a)), o = a + 1, i += s - } - return o !== a ? i + t.substring(o, a) : i - }(function e(t) { - "string" != typeof t && (t = void 0 === t || null === t ? "" : "function" == typeof t ? e(t.call(t)) : JSON.stringify(t)); - return t - }(e)) - }, a.$each = function (e, t) { - if (Array.isArray(e)) - for (var n = 0, i = e.length; n < i; n++) t(e[n], n); - else - for (var a in e) t(e[a], a) - }, e.exports = a - }).call(this, n(4)) - }, function (e, t, n) { - var i = n(2); - e.exports = function (e) { - "use strict"; - var t = "", - a = (e = e || {}).options, - r = e.cover, - o = i.$escape, - s = e.icons, - l = (arguments[1], function (e) { - return t += e - }), - u = e.getObject; - e.theme, e.audio, e.index; - return a.fixed ? (t += '\n
    1) - for (var n = 1; n < arguments.length; n++) t[n - 1] = arguments[n]; - c.push(new f(e, t)), 1 !== c.length || p || l(y) - }, f.prototype.run = function () { - this.fun.apply(null, this.array) - }, r.title = "browser", r.browser = !0, r.env = {}, r.argv = [], r.version = "", r.versions = {}, r.on = v, r.addListener = v, r.once = v, r.off = v, r.removeListener = v, r.removeAllListeners = v, r.emit = v, r.prependListener = v, r.prependOnceListener = v, r.listeners = function (e) { - return [] - }, r.binding = function (e) { - throw new Error("process.binding is not supported") - }, r.cwd = function () { - return "/" - }, r.chdir = function (e) { - throw new Error("process.chdir is not supported") - }, r.umask = function () { - return 0 - } - }, function (e, t, n) { - "use strict"; - (function (e, t) { - ! function (e, n) { - if (!e.setImmediate) { - var i, a, r, o, s, l = 1, - u = {}, - c = !1, - p = e.document, - d = Object.getPrototypeOf && Object.getPrototypeOf(e); - d = d && d.setTimeout ? d : e, "[object process]" === {}.toString.call(e.process) ? i = function (e) { - t.nextTick(function () { - y(e) - }) - } : ! function () { - if (e.postMessage && !e.importScripts) { - var t = !0, - n = e.onmessage; - return e.onmessage = function () { - t = !1 - }, e.postMessage("", "*"), e.onmessage = n, t - } - }() ? e.MessageChannel ? ((r = new MessageChannel).port1.onmessage = function (e) { - y(e.data) - }, i = function (e) { - r.port2.postMessage(e) - }) : p && "onreadystatechange" in p.createElement("script") ? (a = p.documentElement, i = function (e) { - var t = p.createElement("script"); - t.onreadystatechange = function () { - y(e), t.onreadystatechange = null, a.removeChild(t), t = null - }, a.appendChild(t) - }) : i = function (e) { - setTimeout(y, 0, e) - } : (o = "setImmediate$" + Math.random() + "$", s = function (t) { - t.source === e && "string" == typeof t.data && 0 === t.data.indexOf(o) && y(+t.data.slice(o.length)) - }, e.addEventListener ? e.addEventListener("message", s, !1) : e.attachEvent("onmessage", s), i = function (t) { - e.postMessage(o + t, "*") - }), d.setImmediate = function (e) { - "function" != typeof e && (e = new Function("" + e)); - for (var t = new Array(arguments.length - 1), n = 0; n < t.length; n++) t[n] = arguments[n + 1]; - var a = { - callback: e, - args: t - }; - return u[l] = a, i(l), l++ - }, d.clearImmediate = h - } - - function h(e) { - delete u[e] - } - - function y(e) { - if (c) setTimeout(y, 0, e); - else { - var t = u[e]; - if (t) { - c = !0; - try { - ! function (e) { - var t = e.callback, - i = e.args; - switch (i.length) { - case 0: - t(); - break; - case 1: - t(i[0]); - break; - case 2: - t(i[0], i[1]); - break; - case 3: - t(i[0], i[1], i[2]); - break; - default: - t.apply(n, i) - } - }(t) - } finally { - h(e), c = !1 - } - } - } - } - }("undefined" == typeof self ? void 0 === e ? void 0 : e : self) - }).call(this, n(4), n(34)) - }, function (e, t, n) { - "use strict"; - var i = Function.prototype.apply; - - function a(e, t) { - this._id = e, this._clearFn = t - } - t.setTimeout = function () { - return new a(i.call(setTimeout, window, arguments), clearTimeout) - }, t.setInterval = function () { - return new a(i.call(setInterval, window, arguments), clearInterval) - }, t.clearTimeout = t.clearInterval = function (e) { - e && e.close() - }, a.prototype.unref = a.prototype.ref = function () {}, a.prototype.close = function () { - this._clearFn.call(window, this._id) - }, t.enroll = function (e, t) { - clearTimeout(e._idleTimeoutId), e._idleTimeout = t - }, t.unenroll = function (e) { - clearTimeout(e._idleTimeoutId), e._idleTimeout = -1 - }, t._unrefActive = t.active = function (e) { - clearTimeout(e._idleTimeoutId); - var t = e._idleTimeout; - t >= 0 && (e._idleTimeoutId = setTimeout(function () { - e._onTimeout && e._onTimeout() - }, t)) - }, n(35), t.setImmediate = setImmediate, t.clearImmediate = clearImmediate - }, function (e, t, n) { - "use strict"; - (function (t) { - var n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { - return typeof e - } : function (e) { - return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e - }, - i = setTimeout; - - function a() {} - - function r(e) { - if (!(this instanceof r)) throw new TypeError("Promises must be constructed via new"); - if ("function" != typeof e) throw new TypeError("not a function"); - this._state = 0, this._handled = !1, this._value = void 0, this._deferreds = [], c(e, this) - } - - function o(e, t) { - for (; 3 === e._state;) e = e._value; - 0 !== e._state ? (e._handled = !0, r._immediateFn(function () { - var n = 1 === e._state ? t.onFulfilled : t.onRejected; - if (null !== n) { - var i; - try { - i = n(e._value) - } catch (e) { - return void l(t.promise, e) - } - s(t.promise, i) - } else(1 === e._state ? s : l)(t.promise, e._value) - })) : e._deferreds.push(t) - } - - function s(e, t) { - try { - if (t === e) throw new TypeError("A promise cannot be resolved with itself."); - if (t && ("object" === (void 0 === t ? "undefined" : n(t)) || "function" == typeof t)) { - var i = t.then; - if (t instanceof r) return e._state = 3, e._value = t, void u(e); - if ("function" == typeof i) return void c((a = i, o = t, function () { - a.apply(o, arguments) - }), e) - } - e._state = 1, e._value = t, u(e) - } catch (t) { - l(e, t) - } - var a, o - } - - function l(e, t) { - e._state = 2, e._value = t, u(e) - } - - function u(e) { - 2 === e._state && 0 === e._deferreds.length && r._immediateFn(function () { - e._handled || r._unhandledRejectionFn(e._value) - }); - for (var t = 0, n = e._deferreds.length; t < n; t++) o(e, e._deferreds[t]); - e._deferreds = null - } - - function c(e, t) { - var n = !1; - try { - e(function (e) { - n || (n = !0, s(t, e)) - }, function (e) { - n || (n = !0, l(t, e)) - }) - } catch (e) { - if (n) return; - n = !0, l(t, e) - } - } - r.prototype.catch = function (e) { - return this.then(null, e) - }, r.prototype.then = function (e, t) { - var n = new this.constructor(a); - return o(this, new function (e, t, n) { - this.onFulfilled = "function" == typeof e ? e : null, this.onRejected = "function" == typeof t ? t : null, this.promise = n - }(e, t, n)), n - }, r.prototype.finally = function (e) { - var t = this.constructor; - return this.then(function (n) { - return t.resolve(e()).then(function () { - return n - }) - }, function (n) { - return t.resolve(e()).then(function () { - return t.reject(n) - }) - }) - }, r.all = function (e) { - return new r(function (t, i) { - if (!e || void 0 === e.length) throw new TypeError("Promise.all accepts an array"); - var a = Array.prototype.slice.call(e); - if (0 === a.length) return t([]); - var r = a.length; - - function o(e, s) { - try { - if (s && ("object" === (void 0 === s ? "undefined" : n(s)) || "function" == typeof s)) { - var l = s.then; - if ("function" == typeof l) return void l.call(s, function (t) { - o(e, t) - }, i) - } - a[e] = s, 0 == --r && t(a) - } catch (e) { - i(e) - } - } - for (var s = 0; s < a.length; s++) o(s, a[s]) - }) - }, r.resolve = function (e) { - return e && "object" === (void 0 === e ? "undefined" : n(e)) && e.constructor === r ? e : new r(function (t) { - t(e) - }) - }, r.reject = function (e) { - return new r(function (t, n) { - n(e) - }) - }, r.race = function (e) { - return new r(function (t, n) { - for (var i = 0, a = e.length; i < a; i++) e[i].then(t, n) - }) - }, r._immediateFn = "function" == typeof t && function (e) { - t(e) - } || function (e) { - i(e, 0) - }, r._unhandledRejectionFn = function (e) { - "undefined" != typeof console && console && console.warn("Possible Unhandled Promise Rejection:", e) - }, e.exports = r - }).call(this, n(36).setImmediate) - }, function (e, t, n) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - var i = function () { - function e(e, t) { - for (var n = 0; n < t.length; n++) { - var i = t[n]; - i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) - } - } - return function (t, n, i) { - return n && e(t.prototype, n), i && e(t, i), t - } - }(), - a = v(n(37)), - r = v(n(0)), - o = v(n(3)), - s = v(n(18)), - l = v(n(17)), - u = v(n(13)), - c = v(n(12)), - p = v(n(11)), - d = v(n(9)), - h = v(n(8)), - y = v(n(7)), - f = v(n(6)); - - function v(e) { - return e && e.__esModule ? e : { - default: e - } - } - var m = [], - g = function () { - function e(t) { - if (function (e, t) { - if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") - }(this, e), this.options = (0, s.default)(t), this.container = this.options.container, this.paused = !0, this.playedPromise = a.default.resolve(), this.mode = "normal", this.randomOrder = r.default.randomOrder(this.options.audio.length), this.container.classList.add("aplayer"), this.options.lrcType && !this.options.fixed && this.container.classList.add("aplayer-withlrc"), this.options.audio.length > 1 && this.container.classList.add("aplayer-withlist"), r.default.isMobile && this.container.classList.add("aplayer-mobile"), this.arrow = this.container.offsetWidth <= 300, this.arrow && this.container.classList.add("aplayer-arrow"), this.container = this.options.container, 2 === this.options.lrcType || !0 === this.options.lrcType) - for (var n = this.container.getElementsByClassName("aplayer-lrc-content"), i = 0; i < n.length; i++) this.options.audio[i] && (this.options.audio[i].lrc = n[i].innerHTML); - this.template = new l.default({ - container: this.container, - options: this.options, - randomOrder: this.randomOrder - }), this.options.fixed && (this.container.classList.add("aplayer-fixed"), this.template.body.style.width = this.template.body.offsetWidth - 18 + "px"), this.options.mini && (this.setMode("mini"), this.template.info.style.display = "block"), this.template.info.offsetWidth < 200 && this.template.time.classList.add("aplayer-time-narrow"), this.options.lrcType && (this.lrc = new p.default({ - container: this.template.lrc, - async: 3 === this.options.lrcType, - player: this - })), this.events = new y.default, this.storage = new c.default(this), this.bar = new u.default(this.template), this.controller = new d.default(this), this.timer = new h.default(this), this.list = new f.default(this), this.initAudio(), this.bindEvents(), "random" === this.options.order ? this.list.switch(this.randomOrder[0]) : this.list.switch(0), this.options.autoplay && this.play(), m.push(this) - } - return i(e, [{ - key: "initAudio", - value: function () { - var e = this; - this.audio = document.createElement("audio"), this.audio.preload = this.options.preload; - for (var t = function (t) { - e.audio.addEventListener(e.events.audioEvents[t], function (n) { - e.events.trigger(e.events.audioEvents[t], n) - }) - }, n = 0; n < this.events.audioEvents.length; n++) t(n); - this.volume(this.storage.get("volume"), !0) - } - }, { - key: "bindEvents", - value: function () { - var e = this; - this.on("play", function () { - e.paused && e.setUIPlaying() - }), this.on("pause", function () { - e.paused || e.setUIPaused() - }), this.on("timeupdate", function () { - if (!e.disableTimeupdate) { - e.bar.set("played", e.audio.currentTime / e.duration, "width"), e.lrc && e.lrc.update(); - var t = r.default.secondToTime(e.audio.currentTime); - e.template.ptime.innerHTML !== t && (e.template.ptime.innerHTML = t) - } - }), this.on("durationchange", function () { - 1 !== e.duration && (e.template.dtime.innerHTML = r.default.secondToTime(e.duration)) - }), this.on("progress", function () { - var t = e.audio.buffered.length ? e.audio.buffered.end(e.audio.buffered.length - 1) / e.duration : 0; - e.bar.set("loaded", t, "width") - }); - var t = void 0; - this.on("error", function () { - e.list.audios.length > 1 ? (e.notice("An audio error has occurred, player will skip forward in 2 seconds."), t = setTimeout(function () { - e.skipForward(), e.paused || e.play() - }, 2e3)) : 1 === e.list.audios.length && e.notice("An audio error has occurred.") - }), this.events.on("listswitch", function () { - t && clearTimeout(t) - }), this.on("ended", function () { - "none" === e.options.loop ? "list" === e.options.order ? e.list.index < e.list.audios.length - 1 ? (e.list.switch((e.list.index + 1) % e.list.audios.length), e.play()) : (e.list.switch((e.list.index + 1) % e.list.audios.length), e.pause()) : "random" === e.options.order && (e.randomOrder.indexOf(e.list.index) < e.randomOrder.length - 1 ? (e.list.switch(e.nextIndex()), e.play()) : (e.list.switch(e.nextIndex()), e.pause())) : "one" === e.options.loop ? (e.list.switch(e.list.index), e.play()) : "all" === e.options.loop && (e.skipForward(), e.play()) - }) - } - }, { - key: "setAudio", - value: function (e) { - this.hls && (this.hls.destroy(), this.hls = null); - var t = e.type; - this.options.customAudioType && this.options.customAudioType[t] ? "[object Function]" === Object.prototype.toString.call(this.options.customAudioType[t]) ? this.options.customAudioType[t](this.audio, e, this) : console.error("Illegal customType: " + t) : (t && "auto" !== t || (t = /m3u8(#|\?|$)/i.exec(e.url) ? "hls" : "normal"), "hls" === t ? Hls.isSupported() ? (this.hls = new Hls, this.hls.loadSource(e.url), this.hls.attachMedia(this.audio)) : this.audio.canPlayType("application/x-mpegURL") || this.audio.canPlayType("application/vnd.apple.mpegURL") ? this.audio.src = e.url : this.notice("Error: HLS is not supported.") : "normal" === t && (this.audio.src = e.url)), this.seek(0), this.paused || this.audio.play() - } - }, { - key: "theme", - value: function () { - var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.list.audios[this.list.index].theme || this.options.theme, - t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.list.index; - (!(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]) && this.list.audios[t] && (this.list.audios[t].theme = e), this.template.listCurs[t] && (this.template.listCurs[t].style.backgroundColor = e), t === this.list.index && (this.template.pic.style.backgroundColor = e, this.template.played.style.background = e, this.template.thumb.style.background = e, this.template.volume.style.background = e) - } - }, { - key: "seek", - value: function (e) { - e = Math.max(e, 0), e = Math.min(e, this.duration), this.audio.currentTime = e, this.bar.set("played", e / this.duration, "width"), this.template.ptime.innerHTML = r.default.secondToTime(e) - } - }, { - key: "setUIPlaying", - value: function () { - var e = this; - if (this.paused && (this.paused = !1, this.template.button.classList.remove("aplayer-play"), this.template.button.classList.add("aplayer-pause"), this.template.button.innerHTML = "", setTimeout(function () { - e.template.button.innerHTML = o.default.pause - }, 100), this.template.skipPlayButton.innerHTML = o.default.pause), this.timer.enable("loading"), this.options.mutex) - for (var t = 0; t < m.length; t++) this !== m[t] && m[t].pause() - } - }, { - key: "play", - value: function () { - var e = this; - this.setUIPlaying(); - var t = this.audio.play(); - t && t.catch(function (t) { - console.warn(t), "NotAllowedError" === t.name && e.setUIPaused() - }) - } - }, { - key: "setUIPaused", - value: function () { - var e = this; - this.paused || (this.paused = !0, this.template.button.classList.remove("aplayer-pause"), this.template.button.classList.add("aplayer-play"), this.template.button.innerHTML = "", setTimeout(function () { - e.template.button.innerHTML = o.default.play - }, 100), this.template.skipPlayButton.innerHTML = o.default.play), this.container.classList.remove("aplayer-loading"), this.timer.disable("loading") - } - }, { - key: "pause", - value: function () { - this.setUIPaused(), this.audio.pause() - } - }, { - key: "switchVolumeIcon", - value: function () { - this.volume() >= .95 ? this.template.volumeButton.innerHTML = o.default.volumeUp : this.volume() > 0 ? this.template.volumeButton.innerHTML = o.default.volumeDown : this.template.volumeButton.innerHTML = o.default.volumeOff - } - }, { - key: "volume", - value: function (e, t) { - return e = parseFloat(e), isNaN(e) || (e = Math.max(e, 0), e = Math.min(e, 1), this.bar.set("volume", e, "height"), t || this.storage.set("volume", e), this.audio.volume = e, this.audio.muted && (this.audio.muted = !1), this.switchVolumeIcon()), this.audio.muted ? 0 : this.audio.volume - } - }, { - key: "on", - value: function (e, t) { - this.events.on(e, t) - } - }, { - key: "toggle", - value: function () { - this.template.button.classList.contains("aplayer-play") ? this.play() : this.template.button.classList.contains("aplayer-pause") && this.pause() - } - }, { - key: "switchAudio", - value: function (e) { - this.list.switch(e) - } - }, { - key: "addAudio", - value: function (e) { - this.list.add(e) - } - }, { - key: "removeAudio", - value: function (e) { - this.list.remove(e) - } - }, { - key: "destroy", - value: function () { - m.splice(m.indexOf(this), 1), this.pause(), this.container.innerHTML = "", this.audio.src = "", this.timer.destroy(), this.events.trigger("destroy") - } - }, { - key: "setMode", - value: function () { - var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "normal"; - this.mode = e, "mini" === e ? this.container.classList.add("aplayer-narrow") : "normal" === e && this.container.classList.remove("aplayer-narrow") - } - }, { - key: "notice", - value: function (e) { - var t = this, - n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 2e3, - i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : .8; - this.template.notice.innerHTML = e, this.template.notice.style.opacity = i, this.noticeTime && clearTimeout(this.noticeTime), this.events.trigger("noticeshow", { - text: e - }), n && (this.noticeTime = setTimeout(function () { - t.template.notice.style.opacity = 0, t.events.trigger("noticehide") - }, n)) - } - }, { - key: "prevIndex", - value: function () { - if (!(this.list.audios.length > 1)) return 0; - if ("list" === this.options.order) return this.list.index - 1 < 0 ? this.list.audios.length - 1 : this.list.index - 1; - if ("random" === this.options.order) { - var e = this.randomOrder.indexOf(this.list.index); - return 0 === e ? this.randomOrder[this.randomOrder.length - 1] : this.randomOrder[e - 1] - } - } - }, { - key: "nextIndex", - value: function () { - if (!(this.list.audios.length > 1)) return 0; - if ("list" === this.options.order) return (this.list.index + 1) % this.list.audios.length; - if ("random" === this.options.order) { - var e = this.randomOrder.indexOf(this.list.index); - return e === this.randomOrder.length - 1 ? this.randomOrder[0] : this.randomOrder[e + 1] - } - } - }, { - key: "skipBack", - value: function () { - this.list.switch(this.prevIndex()) - } - }, { - key: "skipForward", - value: function () { - this.list.switch(this.nextIndex()) - } - }, { - key: "duration", - get: function () { - return isNaN(this.audio.duration) ? 0 : this.audio.duration - } - }], [{ - key: "version", - get: function () { - return "1.10.1" - } - }]), e - }(); - t.default = g - }, , function (e, t, n) {}, function (e, t, n) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }), n(40); - var i, a = n(38), - r = (i = a) && i.__esModule ? i : { - default: i - }; - console.log("\n %c APlayer v1.10.1 af84efb %c http://aplayer.js.org \n", "color: #fadfa3; background: #030307; padding:5px 0;", "background: #fadfa3; padding:5px 0;"), t.default = r.default - }]).default -}); -//# sourceMappingURL=APlayer.min.js.map \ No newline at end of file diff --git a/music/js/Meting2.min.js b/music/js/Meting2.min.js deleted file mode 100644 index 306af46..0000000 --- a/music/js/Meting2.min.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";function _objectSpread(e){for(var t=1;tt.toUpperCase()))}_init(){let e={};for(let t=0;te.json())).then((e=>this._loadPlayer(e)))}_loadPlayer(e){let t={audio:e,mutex:!0,lrcType:this.meta.lrcType||3,storageName:"metingjs"};if(e.length){let e=_objectSpread({},t,this.config);for(let t in e)("true"===e[t]||"false"===e[t])&&(e[t]="true"===e[t]);let i=document.createElement("div");e.container=i,this.appendChild(i),this.aplayer=new APlayer(e)}}}window.customElements&&!window.customElements.get("meting-js")&&(window.MetingJSElement=MetingJSElement,window.customElements.define("meting-js",MetingJSElement)); \ No newline at end of file diff --git a/music/js/localEngine.js b/music/js/localEngine.js deleted file mode 100644 index 1f4ed85..0000000 --- a/music/js/localEngine.js +++ /dev/null @@ -1,21 +0,0 @@ -var encodedLocalMusic = localMusic.map(item => ({ - name: item.name, - artist: item.artist, - url: encodeNonAscii(item.url), - cover: encodeNonAscii(item.cover), - lrc: encodeNonAscii(item.lrc) -})); - -document.getElementById('heoMusic-page').classList.add('localMusic'); - -function encodeNonAscii(str) { - return str.replace(/[^\x00-\x7F]/g, function(c) { - return encodeURIComponent(c); - }); -} - -const ap = new APlayer({ - container: document.getElementById('heoMusic-page'), - lrcType: 3, - audio: encodedLocalMusic -}); \ No newline at end of file diff --git a/music/js/localEngine.min.js b/music/js/localEngine.min.js deleted file mode 100644 index 49a94bc..0000000 --- a/music/js/localEngine.min.js +++ /dev/null @@ -1 +0,0 @@ -var encodedLocalMusic=localMusic.map((e=>({name:e.name,artist:e.artist,url:encodeNonAscii(e.url),cover:encodeNonAscii(e.cover),lrc:encodeNonAscii(e.lrc)})));function encodeNonAscii(e){return e.replace(/[^\x00-\x7F]/g,(function(e){return encodeURIComponent(e)}))}document.getElementById("heoMusic-page").classList.add("localMusic");const ap=new APlayer({container:document.getElementById("heoMusic-page"),lrcType:3,audio:encodedLocalMusic}); \ No newline at end of file diff --git a/music/js/main.js b/music/js/main.js deleted file mode 100644 index e89adb4..0000000 --- a/music/js/main.js +++ /dev/null @@ -1,194 +0,0 @@ -console.log("\n %c HeoMusic 开源静态音乐播放器 v1.5 %c https://github.com/zhheo/HeoMusic \n", "color: #fadfa3; background: #030307; padding:5px 0;", "background: #fadfa3; padding:5px 0;") -var local = false; - -if (typeof userId === 'undefined') { - var userId = "8152976493"; // 替换为实际的默认值 -} -if (typeof userServer === 'undefined') { - var userServer = "netease"; // 替换为实际的默认值 -} -if (typeof userType === 'undefined') { - var userType = "playlist"; // 替换为实际的默认值 -} - -if (typeof remoteMusic !== 'undefined' && remoteMusic) { - fetch(remoteMusic) - .then(response => response.json()) - .then(data => { - if (Array.isArray(data)) { - localMusic = data; - } - loadMusicScript(); - }) - .catch(error => { - console.error('Error fetching remoteMusic:', error); - loadMusicScript(); - }); -} else { - loadMusicScript(); -} - -function loadMusicScript() { - if (typeof localMusic === 'undefined' || !Array.isArray(localMusic) || localMusic.length === 0) { - // 如果 localMusic 为空数组或未定义,加载 Meting2.min.js - var script = document.createElement('script'); - script.src = './js/Meting2.min.js'; - document.body.appendChild(script); - } else { - // 否则加载 localEngine.min.js - var script = document.createElement('script'); - script.src = './js/localEngine.min.js'; - document.body.appendChild(script); - local = true; - } -} - -var volume = 0.8; - -// 获取地址栏参数 -// 创建URLSearchParams对象并传入URL中的查询字符串 -const params = new URLSearchParams(window.location.search); - -var heo = { - // 音乐节目切换背景 - changeMusicBg: function (isChangeBg = true) { - const heoMusicBg = document.getElementById("music_bg") - - if (isChangeBg) { - // player loadeddata 会进入此处 - const musiccover = document.querySelector("#heoMusic-page .aplayer-pic"); - var img = new Image(); - img.src = extractValue(musiccover.style.backgroundImage); - img.onload = function() { - heoMusicBg.style.backgroundImage = musiccover.style.backgroundImage; - }; - } else { - // 第一次进入,绑定事件,改背景 - let timer = setInterval(()=>{ - const musiccover = document.querySelector("#heoMusic-page .aplayer-pic"); - // 确保player加载完成 - // console.info(heoMusicBg); - if (musiccover) { - clearInterval(timer) - //初始化音量 - if (local) { - ap.volume(0.8, true); - }else { - document.querySelector('meting-js').aplayer.volume(0.8,true); - } - - // 绑定事件 - heo.addEventListenerChangeMusicBg(); - } - }, 100) - } - }, - addEventListenerChangeMusicBg: function () { - const heoMusicPage = document.getElementById("heoMusic-page"); - if (local) { - ap.on('loadeddata', function () { - heo.changeMusicBg(); - }); - }else { - heoMusicPage.querySelector("meting-js").aplayer.on('loadeddata', function () { - heo.changeMusicBg(); - // console.info('player loadeddata'); - }); - } - - - }, - getCustomPlayList: function() { - const heoMusicPage = document.getElementById("heoMusic-page"); - const playlistType = params.get("type") || "playlist"; - - if (params.get("id") && params.get("server")) { - console.log("获取到自定义内容") - var id = params.get("id") - var server = params.get("server") - heoMusicPage.innerHTML = ``; - } else { - console.log("无自定义内容") - heoMusicPage.innerHTML = ``; - } - heo.changeMusicBg(false); - } -} - -// 调用 -heo.getCustomPlayList(); - - -// 改进vh -const vh = window.innerHeight * 1; -document.documentElement.style.setProperty('--vh', `${vh}px`); - -window.addEventListener('resize', () => { - let vh = window.innerHeight * 1; - document.documentElement.style.setProperty('--vh', `${vh}px`); -}); - -//获取图片url -function extractValue(input) { - var valueRegex = /\("([^\s]+)"\)/g; - var match = valueRegex.exec(input); - return match[1]; -} - -//空格控制音乐 -document.addEventListener("keydown", function(event) { - //暂停开启音乐 - if (event.code === "Space") { - event.preventDefault(); - if (local) { - ap.toggle(); - }else { - document.querySelector('meting-js').aplayer.toggle(); - } - - }; - //切换下一曲 - if (event.keyCode === 39) { - event.preventDefault(); - if (local) { - ap.skipForward(); - }else { - document.querySelector('meting-js').aplayer.skipForward(); - } - - }; - //切换上一曲 - if (event.keyCode === 37) { - event.preventDefault(); - if (local) { -ap.skipBack(); - }else { - document.querySelector('meting-js').aplayer.skipBack(); - } - - } - //增加音量 - if (event.keyCode === 38) { - if (volume <= 1) { - volume += 0.1; - if (local) { - ap.volume(volume,true); - }else { - document.querySelector('meting-js').aplayer.volume(volume,true); - } - - } - } - //减小音量 - if (event.keyCode === 40) { - if (volume >= 0) { - volume += -0.1; - if (local) { - ap.volume(volume,true); - }else { - document.querySelector('meting-js').aplayer.volume(volume,true); - } - - } - } -}); \ No newline at end of file diff --git a/music/js/main.min.js b/music/js/main.min.js deleted file mode 100644 index 22e8c1d..0000000 --- a/music/js/main.min.js +++ /dev/null @@ -1 +0,0 @@ -var local=!1;if(void 0===userId)var userId="8152976493";if(void 0===userServer)var userServer="netease";if(void 0===userType)var userType="playlist";function loadMusicScript(){var e;"undefined"!=typeof localMusic&&Array.isArray(localMusic)&&0!==localMusic.length?((e=document.createElement("script")).src="./js/localEngine.min.js",document.body.appendChild(e),local=!0):((e=document.createElement("script")).src="./js/Meting2.min.js",document.body.appendChild(e))}"undefined"!=typeof remoteMusic&&remoteMusic?fetch(remoteMusic).then((e=>e.json())).then((e=>{Array.isArray(e)&&(localMusic=e),loadMusicScript()})).catch((e=>{loadMusicScript()})):loadMusicScript();var volume=.8;const params=new URLSearchParams(window.location.search);var heo={changeMusicBg:function(e=!0){const t=document.getElementById("music_bg");if(e){const e=document.querySelector("#heoMusic-page .aplayer-pic");var o=new Image;o.src=extractValue(e.style.backgroundImage),o.onload=function(){t.style.backgroundImage=e.style.backgroundImage}}else{let e=setInterval((()=>{document.querySelector("#heoMusic-page .aplayer-pic")&&(clearInterval(e),local?ap.volume(.8,!0):document.querySelector("meting-js").aplayer.volume(.8,!0),heo.addEventListenerChangeMusicBg())}),100)}},addEventListenerChangeMusicBg:function(){const e=document.getElementById("heoMusic-page");local?ap.on("loadeddata",(function(){heo.changeMusicBg()})):e.querySelector("meting-js").aplayer.on("loadeddata",(function(){heo.changeMusicBg()}))},getCustomPlayList:function(){const e=document.getElementById("heoMusic-page"),t=params.get("type")||"playlist";if(params.get("id")&¶ms.get("server")){var o=params.get("id"),a=params.get("server");e.innerHTML=``}else e.innerHTML=``;heo.changeMusicBg(!1)}};heo.getCustomPlayList();const vh=1*window.innerHeight;function extractValue(e){return/\("([^\s]+)"\)/g.exec(e)[1]}document.documentElement.style.setProperty("--vh",`${vh}px`),window.addEventListener("resize",(()=>{let e=1*window.innerHeight;document.documentElement.style.setProperty("--vh",`${e}px`)})),document.addEventListener("keydown",(function(e){"Space"===e.code&&(e.preventDefault(),local?ap.toggle():document.querySelector("meting-js").aplayer.toggle()),39===e.keyCode&&(e.preventDefault(),local?ap.skipForward():document.querySelector("meting-js").aplayer.skipForward()),37===e.keyCode&&(e.preventDefault(),local?ap.skipBack():document.querySelector("meting-js").aplayer.skipBack()),38===e.keyCode&&volume<=1&&(volume+=.1,local?ap.volume(volume,!0):document.querySelector("meting-js").aplayer.volume(volume,!0)),40===e.keyCode&&volume>=0&&(volume+=-.1,local?ap.volume(volume,!0):document.querySelector("meting-js").aplayer.volume(volume,!0))})); \ No newline at end of file diff --git a/music/main.css b/music/main.css deleted file mode 100644 index 9f1c181..0000000 --- a/music/main.css +++ /dev/null @@ -1,674 +0,0 @@ -@charset "UTF-8"; - -:root { - --heo-white: #fff; - --heo-white-op: rgba(255, 255, 255, 0.2); - --heo-black: #000; - --heo-black-op: rgba(0, 0, 0, 0.2); - --heo-none: #00000000; - --heo-gray: #999999; - --heo-gray-op: #9999992b; - --heo-vip: #e5a80d; - --heo-main: var(--heo-theme); - --heo-main-op: var(--heo-theme-op); - --heo-main-op-deep: var(--heo-theme-op-deep); - --heo-main-none: var(--heo-theme-none); - --heo-shadow-theme: 0 8px 12px -3px var(--heo-theme-op); - --heo-shadow-blackdeep: 0 2px 16px -3px rgba(0, 0, 0, .15); - --heo-shadow-main: 0 8px 12px -3px var(--heo-main-op); - --heo-shadow-blue: 0 8px 12px -3px rgba(40, 109, 234, .20); - --heo-shadow-white: 0 8px 12px -3px rgba(255, 255, 255, .20); - --heo-shadow-black: 0 0 12px 4px rgba(0, 0, 0, .05); - --heo-shadow-yellow: 0px 38px 77px -26px rgba(255, 201, 62, .12); - --heo-shadow-red: 0 8px 12px -3px #ee7d7936; - --heo-shadow-green: 0 8px 12px -3px #87ee7936; - --heo-logo-color: linear-gradient(215deg, #4584ff 0%, #cf0db9 100%); - --heo-snackbar-time: 5s; -} - -#page { - border: 0; - box-shadow: none !important; - padding: 0 !important; - background: transparent !important; -} - -body { - background: rgb(13, 13, 13); - position: relative; - overflow: hidden; -} - -#heoMusic-page .aplayer{ - display: flex; - flex-direction: row-reverse; - background: rgba(0, 0, 0, 0); - border: none; - box-shadow: none; - justify-content: space-between; -} - -#heoMusic-page.localMusic { - display: flex; - flex-direction: row-reverse; - background: rgba(0, 0, 0, 0); - border: none; - box-shadow: none; - justify-content: space-between; -} -#page { - border: 0; - box-shadow: none !important; - padding: 0 !important; - background: transparent !important; -} -#music_bg { - display: none; - position: fixed; - z-index: -999; - width: 200%; - height: 200%; - top: -50%; - left: -50%; - background-position: 0 0; - rotate: 0; - background-size: 40%; - transition: 0.6s; - background-image: url(/img/cover.webp); -} - -#music_bg::before { - content: ''; - transform: translateZ(0); - background: rgba(0, 0, 0, 0.4); - backdrop-filter: blur(200px); - -webkit-backdrop-filter: blur(200px); - transform: translateZ(0); - position: fixed; - z-index: -998; - top: -50%; - left: -50%; - width: 200%; - height: 200%; -} - -body #music_bg{ - display: block; -} - -body { - background: rgb(13, 13, 13); -} - -#heoMusic-page { - max-width: calc(1200px - 160px); - margin: auto; - margin-top: 60px; -} - -#heoMusic-page .aplayer { - display: flex; - flex-direction: row-reverse; - background: rgba(0, 0, 0, 0); - border: none; - box-shadow: none; -} - -#heoMusic-page.localMusic { - display: flex; - flex-direction: row-reverse; - background: rgba(0, 0, 0, 0); - border: none; - box-shadow: none; -} - -body #web_bg { - filter: blur(63px); - opacity: 0.6; - background-repeat: no-repeat; - background-size: cover; -} -body #footer, -body #nav-music { - display: none; -} - -#heoMusic-page .aplayer-body { - width: 70%; - height: 75vh; -} - -#heoMusic-page ol > li:hover { - background: var(--heo-black-op); - border-radius: 6px; -} -#heoMusic-page .aplayer-pic { - float: none; - width: 60px; - height: 60px; - border-radius: 12px; - margin: auto; - bottom: 30px; - left: 90px; - position: fixed; - z-index: 999; - display: none; -} - -#heoMusic-page .aplayer-info { - margin: 0 20px 0 20px; - border-bottom: none; -} - -#heoMusic-page .aplayer-info .aplayer-music { - text-align: center; - height: auto; - margin: 15px; - display: none; -} - -#heoMusic-page .aplayer-info .aplayer-music .aplayer-author, -#heoMusic-page .aplayer-info .aplayer-music .aplayer-title { - font-size: 2rem; - font-weight: 700; - color: #fff; -} - -#heoMusic-page .aplayer-info .aplayer-lrc { - padding-top: 240px; - height: var(--vh); - mask-image: linear-gradient(to bottom, #000, #000, #000, #000, #000, #000, #000, #000, #000, #000, #0000, #0000); -} - -#heoMusic-page .aplayer-info .aplayer-lrc p { - font-size: 36px; - line-height: 44px; - height: 44px; - margin-bottom: 36px; - color: #fff; - font-weight: bold; - text-align: left; - filter: blur(2px); - opacity: 0.3; - transition: all 0.9s cubic-bezier(0.56, 0.17, 0.22, 0.76); - user-select:none; - text-shadow: 0px 2px 0px #ffffff00; -} -#heoMusic-page .aplayer-info .aplayer-lrc p.aplayer-lrc-current { - filter: blur(0px); - opacity: 1; - transition: all 0.3s cubic-bezier(0.56, 0.17, 0.22, 0.76), text-shadow 8s 4s ease-in; - height: fit-content; - text-shadow: 0px 2px 16px #ffffff94; -} - -#heoMusic-page .aplayer-info .aplayer-lrc p.aplayer-lrc-current:first-child { - text-shadow: 0px 2px 16px #ffffff00; -} - -@media screen and (min-width: 768px) { - #heoMusic-page .aplayer-info .aplayer-lrc:hover p { - filter: blur(0px); - } -} - -#heoMusic-page .aplayer .aplayer-lrc:after, -#heoMusic-page .aplayer .aplayer-lrc:before { - display: none; -} - -.aplayer .aplayer-lrc .aplayer-lrc-contents { - width: 90%; - margin-left: auto; - transition: all .5s cubic-bezier(0.49, 0.21, 0.22, 0.84); - position: relative; -} - -@media screen and (max-width: 768px) { - .aplayer .aplayer-lrc .aplayer-lrc-contents { - width: 100%; - } -} - -/* 控制器 */ -#heoMusic-page .aplayer-info .aplayer-controller { - position: fixed; - max-width: calc(1200px - 160px); - margin: auto; - left: 0; - right: 0; - bottom: 50px; - align-items: center; -} -#heoMusic-page .aplayer-info .aplayer-controller .aplayer-bar-wrap { - margin: 0 160px 0 150px; -} -#heoMusic-page .aplayer-info .aplayer-controller .aplayer-played { - background: var(--heo-white) !important; -} -#heoMusic-page .aplayer-info .aplayer-controller .aplayer-thumb { - -webkit-transform: none; - transform: none; - background: #fff !important; -} -#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-back, -#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-forward, -#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-play { - display: inline; - position: fixed; -} -#heoMusic-page .aplayer-info .aplayer-time { - position: absolute; - width: 100%; - bottom: 24px; - height: 0; - display: flex; - justify-content: flex-end; -} -#heoMusic-page .aplayer-info .aplayer-time .aplayer-time-inner { - margin-right: 18px; - margin-top: -8px; -} -#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-back { - position: absolute; - left: 0; -} -#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-play { - position: absolute; - left: 40px; -} -#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-forward { - position: absolute; - left: 80px; -} - -#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon { - width: 2rem; - height: 2rem; - margin-left: 15px; -} - -#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon::before { - content: ''; - position: absolute; - padding: 8px; - top: -6px; - width: 8px; -} - -#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-menu { - display: none; -} - -#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon path { - fill: var(--heo-white); - opacity: 0.8; -} - -#heoMusic-page .aplayer-list { - width: 40%; - max-width: 480px; - max-height: none !important; - height: 100%; - min-width: 200px; -} - -#heoMusic-page ol { - max-height: calc(var(--vh) - 170px)!important; -} - -#heoMusic-page ol::-webkit-scrollbar-thumb { - background-color: var(--heo-white-op); -} - - -#heoMusic-page ol > li { - font-size: 14px; - opacity: 0.6; -} -#heoMusic-page ol > li.aplayer-list-light { - background: var(--heo-black-op); - border-radius: 6px; - height: 60px; - display: flex; - flex-direction: column; - opacity: 1; -} - -#heoMusic-page ol > li.aplayer-list-light .aplayer-list-index { - display: none; -} - -#heoMusic-page ol > li.aplayer-list-light .aplayer-list-title { - font-size: 20px; - line-height: 20px; - margin-top: 8px; - font-weight: bold; - overflow:hidden; - text-overflow:ellipsis; - white-space:nowrap; -} - -#heoMusic-page ol > li span { - color: var(--heo-white); -} - -#heoMusic-page ol > li.aplayer-list-light .aplayer-list-cur { - display: none; -} -#heoMusic-page ol > li span.aplayer-list-title { - line-height: 32px; -} - -#heoMusic-page ol > li .aplayer-list-index { - line-height: 32px; -} - -#heoMusic-page ol > li span.aplayer-list-author { - opacity: 0.6; - overflow:hidden; - text-overflow:ellipsis; - white-space:nowrap; - max-width: 40%; - line-height: 32px; -} - -#heoMusic-page ol > li.aplayer-list-light span.aplayer-list-author { - max-width: 100%; -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar { - height: 8px; - border-radius: 8px; - background: var(--heo-white-op); -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-loaded { - background: var(--heo-white-op); - height: 8px; - border-radius: 8px; -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played { - height: 8px; - border-radius: 8px; -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb { - height: 16px; - width: 16px; -} - -/* 导航栏 */ -.page #nav { - backdrop-filter: none !important; - background: 0 0 !important; - border-bottom: none !important; -} - -.page #page-header.not-top-img #nav a, -.page #page-header #nav .back-home-button { - color: var(--heo-white); -} - -body .s-sticker div { - color: var(--heo-white) !important; -} - -body .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-loop { - margin-right: 7px; -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-time { - color: var(--heo-white); -} - -[data-theme="dark"] .page #page-header:before { - background-color: transparent; -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap:hover .aplayer-volume-bar-wrap { - height: 120px; - border-radius: 40px; - width: 30px; -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap { - width: 30px; -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap .aplayer-volume-bar { - width: 100%; - height: 100%; - left: 0; -} - -.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap .aplayer-volume-bar .aplayer-volume { - width: 100%; - background: var(--heo-white)!important; -} - -/* **** 移动端样式 ***** */ -@media screen and (max-width: 768px) { - body #rightside { - display: none; - } - body #content-inner, - body #page { - z-index: auto; - } - /* 歌曲列表 */ - #heoMusic-page .aplayer-list { - position: fixed; - z-index: 1002; - width: 100%; - bottom: 0px; - left: 0; - background: var(--heo-white); - border-radius: 16px 16px 0px 0px; - padding: 15px 0px; - max-width: 100%; - height: calc(var(--vh) - 200px); - } - #heoMusic-page .aplayer-list.aplayer-list-hide { - bottom: -100% !important; - } - #heoMusic-page ol { - max-height: 100%!important; - padding-right: 3px; - padding-left: 8px; - } - #heoMusic-page ol > li { - display: flex; - } - #heoMusic-page ol > li span { - color: var(--font-color); - } - #heoMusic-page ol > li span.aplayer-list-title { - width: 30%; - } - #heoMusic-page ol > li.aplayer-list-light { - background: #33a673; - padding: 5px 20px; - border-radius: 10px; - height: 52px; - justify-content: center; - } - #heoMusic-page ol > li.aplayer-list-light .aplayer-list-title { - margin-top: 4px; - } - #heoMusic-page ol > li.aplayer-list-light span { - color: #fff; - } - #heoMusic-page ol > li span.aplayer-list-title { - max-width: 55%; - width: auto; - display: -webkit-box; - -webkit-line-clamp: 1; - overflow: hidden; - -webkit-box-orient: vertical; - } - #heoMusic-page ol > li span.aplayer-list-author { - right: 10px; - width: auto; - max-width: 35%; - display: -webkit-box; - -webkit-line-clamp: 1; - overflow: hidden; - -webkit-box-orient: vertical; - margin-left: auto; - } - #heoMusic-page ol > li.aplayer-list-light span.aplayer-list-author { - margin-left: 0; - } - - #heoMusic-page ol > li.aplayer-list-light span.aplayer-list-author { - right: 15px; - } - /* 歌词信息 */ - #heoMusic-page .aplayer-body { - width: 100%; - overflow: hidden; - position: fixed; - margin: auto; - left: 0; - right: 0; - top: 0; - height: calc(var(--vh) - 200px); - } - #heoMusic-page .aplayer-info .aplayer-lrc { - margin-top: 0; - height: auto; - min-height: 100%; - mask-image: linear-gradient(to bottom, #000, #000, #000, #000, #0000, #0000); - } - /* 控制按键和进度条 */ - #heoMusic-page .aplayer-info .aplayer-controller { - width: 100%; - bottom: 120px; - } - #heoMusic-page .aplayer-info .aplayer-controller .aplayer-bar-wrap { - margin: 0 32px; - } - #heoMusic-page .aplayer-info .aplayer-time { - bottom: -40px; - align-items: center; - } - #heoMusic-page .aplayer-info .aplayer-time .aplayer-time-inner { - position: absolute; - width: 100%; - margin-right: 4px; - margin-top: -60px; - } - #heoMusic-page .aplayer-info .aplayer-time .aplayer-time-inner .aplayer-dtime { - position: absolute; - right: 30px; - } - #heoMusic-page .aplayer-info .aplayer-time .aplayer-time-inner .aplayer-ptime { - position: absolute; - left: 44px; - } - #heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-back { - margin: auto; - right: 110px; - } - #heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-play { - margin: auto; - right: 0; - left: 0; - width: 56px; - height: 56px; - } - #heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-forward { - margin: auto; - left: 110px; - right: 0; - } - #heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-order { - position: absolute; - left: 22px; - width: 24px; - height: 24px; - opacity: 0.4; - } - #heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-loop { - position: absolute; - right: 25px; - width: 24px; - height: 24px; - opacity: 0.4; - } - #heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-menu { - display: inline; - position: absolute; - right: 30px; - top: -100px; - width: 24px; - height: 24px; - opacity: 0.4; - } - #heoMusic-page .aplayer-volume-bar-wrap { - bottom: 0px; - right: 7px; - } - #heoMusic-page .aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap { - left: -66px; - display: none; - } - #heoMusic-page.localMusic .aplayer-info .aplayer-controller .aplayer-volume-wrap { - left: -66px; - display: none; - } - #heoMusic-page .aplayer-info .aplayer-lrc { - padding-top: 100px; - } - - #heoMusic-page .aplayer-info .aplayer-lrc p { - font-size: 32px; - margin-bottom: 38px; - line-height: 42px; - height: 42px; - } - #heoMusic-page .aplayer-info .aplayer-music { - display: flex; - position: fixed; - top: calc(var(--vh) - 178px); - left: 0; - margin: 0; - margin-left: 32px; - height: 21px; - max-width: calc(100vw - 110px); - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - opacity: 0.6; - align-items: center; - line-height: 1; - } - - #heoMusic-page .aplayer-info .aplayer-music .aplayer-title { - font-size: 16px; - font-weight: normal; - margin: 0; - line-height: 1; - } - - #heoMusic-page .aplayer-info .aplayer-music .aplayer-author { - margin-left: 4px; - font-size: 16px; - font-weight: normal; - line-height: 1; - } - - #heoMusic-page .aplayer-info .aplayer-music .aplayer-author, - #heoMusic-page .aplayer-info .aplayer-music .aplayer-title { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - max-width: calc(100vw - 176px); - } - - .aplayer .aplayer-lrc { - overflow: inherit; - } -} \ No newline at end of file diff --git a/music/main.min.css b/music/main.min.css deleted file mode 100644 index 7e75b19..0000000 --- a/music/main.min.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";:root{--heo-white:#fff;--heo-white-op:rgba(255,255,255,.2);--heo-black:#000;--heo-black-op:rgba(0,0,0,.2);--heo-none:#00000000;--heo-gray:#999999;--heo-gray-op:#9999992b;--heo-vip:#e5a80d;--heo-main:var(--heo-theme);--heo-main-op:var(--heo-theme-op);--heo-main-op-deep:var(--heo-theme-op-deep);--heo-main-none:var(--heo-theme-none);--heo-shadow-theme:0 8px 12px -3px var(--heo-theme-op);--heo-shadow-blackdeep:0 2px 16px -3px rgba(0,0,0,.15);--heo-shadow-main:0 8px 12px -3px var(--heo-main-op);--heo-shadow-blue:0 8px 12px -3px rgba(40,109,234,.20);--heo-shadow-white:0 8px 12px -3px rgba(255,255,255,.20);--heo-shadow-black:0 0 12px 4px rgba(0,0,0,.05);--heo-shadow-yellow:0 38px 77px -26px rgba(255,201,62,.12);--heo-shadow-red:0 8px 12px -3px #ee7d7936;--heo-shadow-green:0 8px 12px -3px #87ee7936;--heo-logo-color:linear-gradient(215deg,#4584ff 0%,#cf0db9 100%);--heo-snackbar-time:5s;}#page{border:0;box-shadow:none!important;padding:0!important;background:transparent!important;}body{background:rgb(13,13,13);position:relative;overflow:hidden;}#heoMusic-page .aplayer{display:flex;flex-direction:row-reverse;background:rgba(0,0,0,0);border:none;box-shadow:none;justify-content:space-between;}#heoMusic-page.localMusic{display:flex;flex-direction:row-reverse;background:rgba(0,0,0,0);border:none;box-shadow:none;justify-content:space-between;}#page{border:0;box-shadow:none!important;padding:0!important;background:transparent!important;}#music_bg{display:none;position:fixed;z-index:-999;width:200%;height:200%;top:-50%;left:-50%;background-position:0 0;rotate:0;background-size:40%;transition:.6s;background-image:url(/img/cover.webp);}#music_bg::before{content:'';transform:translateZ(0);background:rgba(0,0,0,.4);backdrop-filter:blur(200px);-webkit-backdrop-filter:blur(200px);transform:translateZ(0);position:fixed;z-index:-998;top:-50%;left:-50%;width:200%;height:200%;}body #music_bg{display:block;}body{background:rgb(13,13,13);}#heoMusic-page{max-width:calc(1200px - 160px);margin:auto;margin-top:60px;}#heoMusic-page .aplayer{display:flex;flex-direction:row-reverse;background:rgba(0,0,0,0);border:none;box-shadow:none;}#heoMusic-page.localMusic{display:flex;flex-direction:row-reverse;background:rgba(0,0,0,0);border:none;box-shadow:none;}body #web_bg{filter:blur(63px);opacity:.6;background-repeat:no-repeat;background-size:cover;}body #footer,body #nav-music{display:none;}#heoMusic-page .aplayer-body{width:70%;height:75vh;}#heoMusic-page ol>li:hover{background:var(--heo-black-op);border-radius:6px;}#heoMusic-page .aplayer-pic{float:none;width:60px;height:60px;border-radius:12px;margin:auto;bottom:30px;left:90px;position:fixed;z-index:999;display:none;}#heoMusic-page .aplayer-info{margin:0 20px 0 20px;border-bottom:none;}#heoMusic-page .aplayer-info .aplayer-music{text-align:center;height:auto;margin:15px;display:none;}#heoMusic-page .aplayer-info .aplayer-music .aplayer-author,#heoMusic-page .aplayer-info .aplayer-music .aplayer-title{font-size:2rem;font-weight:700;color:#fff;}#heoMusic-page .aplayer-info .aplayer-lrc{padding-top:240px;height:var(--vh);mask-image:linear-gradient(to bottom,#000,#000,#000,#000,#000,#000,#000,#000,#000,#000,#0000,#0000);}#heoMusic-page .aplayer-info .aplayer-lrc p{font-size:36px;line-height:44px;height:44px;margin-bottom:36px;color:#fff;font-weight:bold;text-align:left;filter:blur(2px);opacity:.3;transition:all .9s cubic-bezier(.56,.17,.22,.76);user-select:none;text-shadow:0 2px 0 #ffffff00;}#heoMusic-page .aplayer-info .aplayer-lrc p.aplayer-lrc-current{filter:blur(0);opacity:1;transition:all .3s cubic-bezier(.56,.17,.22,.76),text-shadow 8s 4s ease-in;height:fit-content;text-shadow:0 2px 16px #ffffff94;}#heoMusic-page .aplayer-info .aplayer-lrc p.aplayer-lrc-current:first-child{text-shadow:0 2px 16px #ffffff00;}@media screen and (min-width:768px){#heoMusic-page .aplayer-info .aplayer-lrc:hover p{filter:blur(0)}}#heoMusic-page .aplayer .aplayer-lrc:after,#heoMusic-page .aplayer .aplayer-lrc:before{display:none;}.aplayer .aplayer-lrc .aplayer-lrc-contents{width:90%;margin-left:auto;transition:all .5s cubic-bezier(.49,.21,.22,.84);position:relative;}@media screen and (max-width:768px){.aplayer .aplayer-lrc .aplayer-lrc-contents{width:100%}}#heoMusic-page .aplayer-info .aplayer-controller{position:fixed;max-width:calc(1200px - 160px);margin:auto;left:0;right:0;bottom:50px;align-items:center;}#heoMusic-page .aplayer-info .aplayer-controller .aplayer-bar-wrap{margin:0 160px 0 150px;}#heoMusic-page .aplayer-info .aplayer-controller .aplayer-played{background:var(--heo-white)!important;}#heoMusic-page .aplayer-info .aplayer-controller .aplayer-thumb{-webkit-transform:none;transform:none;background:#fff!important;}#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-back,#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-forward,#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-play{display:inline;position:fixed;}#heoMusic-page .aplayer-info .aplayer-time{position:absolute;width:100%;bottom:24px;height:0;display:flex;justify-content:flex-end;}#heoMusic-page .aplayer-info .aplayer-time .aplayer-time-inner{margin-right:18px;margin-top:-8px;}#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-back{position:absolute;left:0;}#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-play{position:absolute;left:40px;}#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-forward{position:absolute;left:80px;}#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon{width:2rem;height:2rem;margin-left:15px;}#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon::before{content:'';position:absolute;padding:8px;top:-6px;width:8px;}#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-menu{display:none;}#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon path{fill:var(--heo-white);opacity:.8;}#heoMusic-page .aplayer-list{width:40%;max-width:480px;max-height:none!important;height:100%;min-width:200px;}#heoMusic-page ol{max-height:calc(var(--vh) - 170px)!important;}#heoMusic-page ol::-webkit-scrollbar-thumb{background-color:var(--heo-white-op);}#heoMusic-page ol>li{font-size:14px;opacity:.6;}#heoMusic-page ol>li.aplayer-list-light{background:var(--heo-black-op);border-radius:6px;height:60px;display:flex;flex-direction:column;opacity:1;}#heoMusic-page ol>li.aplayer-list-light .aplayer-list-index{display:none;}#heoMusic-page ol>li.aplayer-list-light .aplayer-list-title{font-size:20px;line-height:20px;margin-top:8px;font-weight:bold;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}#heoMusic-page ol>li span{color:var(--heo-white);}#heoMusic-page ol>li.aplayer-list-light .aplayer-list-cur{display:none;}#heoMusic-page ol>li span.aplayer-list-title{line-height:32px;}#heoMusic-page ol>li .aplayer-list-index{line-height:32px;}#heoMusic-page ol>li span.aplayer-list-author{opacity:.6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:40%;line-height:32px;}#heoMusic-page ol>li.aplayer-list-light span.aplayer-list-author{max-width:100%;}.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar{height:8px;border-radius:8px;background:var(--heo-white-op);}.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-loaded{background:var(--heo-white-op);height:8px;border-radius:8px;}.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played{height:8px;border-radius:8px;}.aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb{height:16px;width:16px;}.page #nav{backdrop-filter:none!important;background:0 0!important;border-bottom:none!important;}.page #page-header.not-top-img #nav a,.page #page-header #nav .back-home-button{color:var(--heo-white);}body .s-sticker div{color:var(--heo-white)!important;}body .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-loop{margin-right:7px;}.aplayer .aplayer-info .aplayer-controller .aplayer-time{color:var(--heo-white);}[data-theme="dark"] .page #page-header:before{background-color:transparent;}.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap:hover .aplayer-volume-bar-wrap{height:120px;border-radius:40px;width:30px;}.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap{width:30px;}.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap .aplayer-volume-bar{width:100%;height:100%;left:0;}.aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap .aplayer-volume-bar-wrap .aplayer-volume-bar .aplayer-volume{width:100%;background:var(--heo-white)!important;}@media screen and (max-width:768px){body #rightside{display:none}body #content-inner,body #page{z-index:auto}#heoMusic-page .aplayer-list{position:fixed;z-index:1002;width:100%;bottom:0;left:0;background:var(--heo-white);border-radius:16px 16px 0 0;padding:15px 0;max-width:100%;height:calc(var(--vh) - 200px)}#heoMusic-page .aplayer-list.aplayer-list-hide{bottom:-100%!important}#heoMusic-page ol{max-height:100%!important;padding-right:3px;padding-left:8px}#heoMusic-page ol>li{display:flex}#heoMusic-page ol>li span{color:var(--font-color)}#heoMusic-page ol>li span.aplayer-list-title{width:30%}#heoMusic-page ol>li.aplayer-list-light{background:#33a673;padding:5px 20px;border-radius:10px;height:52px;justify-content:center}#heoMusic-page ol>li.aplayer-list-light .aplayer-list-title{margin-top:4px}#heoMusic-page ol>li.aplayer-list-light span{color:#fff}#heoMusic-page ol>li span.aplayer-list-title{max-width:55%;width:auto;display:-webkit-box;-webkit-line-clamp:1;overflow:hidden;-webkit-box-orient:vertical}#heoMusic-page ol>li span.aplayer-list-author{right:10px;width:auto;max-width:35%;display:-webkit-box;-webkit-line-clamp:1;overflow:hidden;-webkit-box-orient:vertical;margin-left:auto}#heoMusic-page ol>li.aplayer-list-light span.aplayer-list-author{margin-left:0}#heoMusic-page ol>li.aplayer-list-light span.aplayer-list-author{right:15px}#heoMusic-page .aplayer-body{width:100%;overflow:hidden;position:fixed;margin:auto;left:0;right:0;top:0;height:calc(var(--vh) - 200px)}#heoMusic-page .aplayer-info .aplayer-lrc{margin-top:0;height:auto;min-height:100%;mask-image:linear-gradient(to bottom,#000,#000,#000,#000,#0000,#0000)}#heoMusic-page .aplayer-info .aplayer-controller{width:100%;bottom:120px}#heoMusic-page .aplayer-info .aplayer-controller .aplayer-bar-wrap{margin:0 32px}#heoMusic-page .aplayer-info .aplayer-time{bottom:-40px;align-items:center}#heoMusic-page .aplayer-info .aplayer-time .aplayer-time-inner{position:absolute;width:100%;margin-right:4px;margin-top:-60px}#heoMusic-page .aplayer-info .aplayer-time .aplayer-time-inner .aplayer-dtime{position:absolute;right:30px}#heoMusic-page .aplayer-info .aplayer-time .aplayer-time-inner .aplayer-ptime{position:absolute;left:44px}#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-back{margin:auto;right:110px}#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-play{margin:auto;right:0;left:0;width:56px;height:56px}#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-forward{margin:auto;left:110px;right:0}#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-order{position:absolute;left:22px;width:24px;height:24px;opacity:.4}#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-loop{position:absolute;right:25px;width:24px;height:24px;opacity:.4}#heoMusic-page .aplayer-info .aplayer-time .aplayer-icon-menu{display:inline;position:absolute;right:30px;top:-100px;width:24px;height:24px;opacity:.4}#heoMusic-page .aplayer-volume-bar-wrap{bottom:0;right:7px}#heoMusic-page .aplayer .aplayer-info .aplayer-controller .aplayer-volume-wrap{left:-66px;display:none}#heoMusic-page.localMusic .aplayer-info .aplayer-controller .aplayer-volume-wrap{left:-66px;display:none}#heoMusic-page .aplayer-info .aplayer-lrc{padding-top:100px}#heoMusic-page .aplayer-info .aplayer-lrc p{font-size:32px;margin-bottom:38px;line-height:42px;height:42px}#heoMusic-page .aplayer-info .aplayer-music{display:flex;position:fixed;top:calc(var(--vh) - 178px);left:0;margin:0;margin-left:32px;height:21px;max-width:calc(100vw - 110px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.6;align-items:center;line-height:1}#heoMusic-page .aplayer-info .aplayer-music .aplayer-title{font-size:16px;font-weight:normal;margin:0;line-height:1}#heoMusic-page .aplayer-info .aplayer-music .aplayer-author{margin-left:4px;font-size:16px;font-weight:normal;line-height:1}#heoMusic-page .aplayer-info .aplayer-music .aplayer-author,#heoMusic-page .aplayer-info .aplayer-music .aplayer-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100vw - 176px)}.aplayer .aplayer-lrc{overflow:inherit}} \ No newline at end of file diff --git a/music/manifest.json b/music/manifest.json deleted file mode 100644 index 02bb5b8..0000000 --- a/music/manifest.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "HeoMusic", - "short_name": "HeoMusic", - "theme_color": "#000000", - "background_color": "#000000", - "display": "fullscreen", - "scope": "/", - "start_url": "/", - "icons": [ - { - "src": "img/icon-r_mini.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "img/icon-r.webp", - "sizes": "512x512", - "type": "image/png" - } - ] -} \ No newline at end of file diff --git a/music/music.html b/music/music.html deleted file mode 100644 index c24e265..0000000 --- a/music/music.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - HeoMusic - 用音乐感染人心 - - - - - - - - - - - - -
    -
    -
    - - - - - - \ No newline at end of file diff --git "a/music/\351\237\263\344\271\220_music.png" "b/music/\351\237\263\344\271\220_music.png" deleted file mode 100644 index df02c56..0000000 Binary files "a/music/\351\237\263\344\271\220_music.png" and /dev/null differ