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 ", t += r(e[1]), t += "
\n";
- }), t
- }
- }, 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(10),
- 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.container = t.container, this.async = t.async, this.player = t.player, this.parsed = [], this.index = 0, this.current = []
- }
- return a(e, [{
- key: "show",
- value: function () {
- this.player.events.trigger("lrcshow"), this.player.template.lrcWrap.classList.remove("aplayer-lrc-hide")
- }
- }, {
- key: "hide",
- value: function () {
- this.player.events.trigger("lrchide"), this.player.template.lrcWrap.classList.add("aplayer-lrc-hide")
- }
- }, {
- key: "toggle",
- value: function () {
- this.player.template.lrcWrap.classList.contains("aplayer-lrc-hide") ? this.show() : this.hide()
- }
- }, {
- key: "update",
- value: function () {
- var e = arguments.length > 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\n
\n ", l(n(1)(u({
- theme: a.theme,
- audio: a.audio,
- index: 1
- }))), t += '\n \n
\n\n
\n
', t += s.play, t += '
\n
\n
\n
\n No audio \n \n
\n
\n
\n
\n
\n
\n \n ', t += s.loading, t += ' \n \n
\n
\n
\n
\n
\n 00:00 / 00:00 \n \n
\n ', t += s.skip, t += '\n \n
\n ', t += s.play, t += '\n \n
\n ', t += s.skip, t += '\n \n
\n
\n ', t += s.volumeDown, t += '\n \n
\n
\n
\n ', "list" === a.order ? t += s.orderList : "random" === a.order && (t += s.orderRandom), t += '\n \n
\n ', "one" === a.loop ? t += s.loopOne : "all" === a.loop ? t += s.loopAll : "none" === a.loop && (t += s.loopNone), t += '\n \n \n
\n ', t += s.lrc, t += '\n \n
\n
\n
\n
\n
', t += s.right, t += '
\n
\n\n') : (t += '\n\n
\n
', t += s.play, t += '
\n
\n
\n
\n No audio \n \n
\n
\n
\n
\n
\n
\n
\n \n ', t += s.loading, t += ' \n \n
\n
\n
\n
\n
\n 00:00 / 00:00 \n \n
\n ', t += s.skip, t += '\n \n
\n ', t += s.play, t += '\n \n
\n ', t += s.skip, t += '\n \n
\n
\n ', t += s.volumeDown, t += '\n \n
\n
\n
\n ', "list" === a.order ? t += s.orderList : "random" === a.order && (t += s.orderRandom), t += '\n \n
\n ', "one" === a.loop ? t += s.loopOne : "all" === a.loop ? t += s.loopAll : "none" === a.loop && (t += s.loopNone), t += '\n \n \n
\n ', t += s.lrc, t += '\n \n
\n
\n
\n
\n
', t += s.right, t += '
\n
\n\n
\n ", l(n(1)(u({
- theme: a.theme,
- audio: a.audio,
- index: 1
- }))), t += "\n \n
\n"), t
- }
- }, 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(3)),
- r = o(n(16));
-
- 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.container = t.container, this.options = t.options, this.randomOrder = t.randomOrder, this.init()
- }
- return i(e, [{
- key: "init",
- value: function () {
- var e = "";
- this.options.audio.length && (e = "random" === this.options.order ? this.options.audio[this.randomOrder[0]].cover : this.options.audio[0].cover), this.container.innerHTML = (0, r.default)({
- options: this.options,
- icons: a.default,
- cover: e,
- getObject: function (e) {
- return e
- }
- }), this.lrc = this.container.querySelector(".aplayer-lrc-contents"), this.lrcWrap = this.container.querySelector(".aplayer-lrc"), this.ptime = this.container.querySelector(".aplayer-ptime"), this.info = this.container.querySelector(".aplayer-info"), this.time = this.container.querySelector(".aplayer-time"), this.barWrap = this.container.querySelector(".aplayer-bar-wrap"), this.button = this.container.querySelector(".aplayer-button"), this.body = this.container.querySelector(".aplayer-body"), this.list = this.container.querySelector(".aplayer-list"), this.listOl = this.container.querySelector(".aplayer-list ol"), this.listCurs = this.container.querySelectorAll(".aplayer-list-cur"), this.played = this.container.querySelector(".aplayer-played"), this.loaded = this.container.querySelector(".aplayer-loaded"), this.thumb = this.container.querySelector(".aplayer-thumb"), this.volume = this.container.querySelector(".aplayer-volume"), this.volumeBar = this.container.querySelector(".aplayer-volume-bar"), this.volumeButton = this.container.querySelector(".aplayer-time button"), this.volumeBarWrap = this.container.querySelector(".aplayer-volume-bar-wrap"), this.loop = this.container.querySelector(".aplayer-icon-loop"), this.order = this.container.querySelector(".aplayer-icon-order"), this.menu = this.container.querySelector(".aplayer-icon-menu"), this.pic = this.container.querySelector(".aplayer-pic"), this.title = this.container.querySelector(".aplayer-title"), this.author = this.container.querySelector(".aplayer-author"), this.dtime = this.container.querySelector(".aplayer-dtime"), this.notice = this.container.querySelector(".aplayer-notice"), this.miniSwitcher = this.container.querySelector(".aplayer-miniswitcher"), this.skipBackButton = this.container.querySelector(".aplayer-icon-back"), this.skipForwardButton = this.container.querySelector(".aplayer-icon-forward"), this.skipPlayButton = this.container.querySelector(".aplayer-icon-play"), this.lrcButton = this.container.querySelector(".aplayer-icon-lrc")
- }
- }]), e
- }();
- t.default = s
- }, function (e, t, n) {
- "use strict";
- Object.defineProperty(t, "__esModule", {
- value: !0
- }), t.default = function (e) {
- var t = {
- container: e.element || document.getElementsByClassName("aplayer")[0],
- mini: e.narrow || e.fixed || !1,
- fixed: !1,
- autoplay: !1,
- mutex: !0,
- lrcType: e.showlrc || e.lrc || 0,
- preload: "auto",
- theme: "#b7daff",
- loop: "all",
- order: "list",
- volume: .7,
- listFolded: e.fixed,
- listMaxHeight: e.listmaxheight || "250px",
- audio: e.music || [],
- storageName: "aplayer-setting"
- };
- for (var n in t) t.hasOwnProperty(n) && !e.hasOwnProperty(n) && (e[n] = t[n]);
- return "[object Array]" !== Object.prototype.toString.call(e.audio) && (e.audio = [e.audio]), e.audio.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
- }), e.audio.length <= 1 && "one" === e.loop && (e.loop = "all"), e
- }
- }, function (e, t) {
- e.exports = ' '
- }, function (e, t) {
- e.exports = ' '
- }, function (e, t) {
- e.exports = ' '
- }, function (e, t) {
- e.exports = ' '
- }, function (e, t) {
- e.exports = ' '
- }, function (e, t) {
- e.exports = ' '
- }, function (e, t) {
- e.exports = ' '
- }, function (e, t) {
- e.exports = ' '
- }, function (e, t) {
- e.exports = ' '
- }, function (e, t) {
- e.exports = ' '
- }, function (e, t) {
- e.exports = ' '
- }, function (e, t) {
- e.exports = ' '
- }, function (e, t) {
- e.exports = ' '
- }, function (e, t) {
- e.exports = ' '
- }, function (e, t) {
- e.exports = ' '
- }, function (e, t, n) {
- "use strict";
- var i, a, r = e.exports = {};
-
- function o() {
- throw new Error("setTimeout has not been defined")
- }
-
- function s() {
- throw new Error("clearTimeout has not been defined")
- }
-
- function l(e) {
- if (i === setTimeout) return setTimeout(e, 0);
- if ((i === o || !i) && setTimeout) return i = setTimeout, setTimeout(e, 0);
- try {
- return i(e, 0)
- } catch (t) {
- try {
- return i.call(null, e, 0)
- } catch (t) {
- return i.call(this, e, 0)
- }
- }
- }! function () {
- try {
- i = "function" == typeof setTimeout ? setTimeout : o
- } catch (e) {
- i = o
- }
- try {
- a = "function" == typeof clearTimeout ? clearTimeout : s
- } catch (e) {
- a = s
- }
- }();
- var u, c = [],
- p = !1,
- d = -1;
-
- function h() {
- p && u && (p = !1, u.length ? c = u.concat(c) : d = -1, c.length && y())
- }
-
- function y() {
- if (!p) {
- var e = l(h);
- p = !0;
- for (var t = c.length; t;) {
- for (u = c, c = []; ++d < t;) u && u[d].run();
- d = -1, t = c.length
- }
- u = null, p = !1,
- function (e) {
- if (a === clearTimeout) return clearTimeout(e);
- if ((a === s || !a) && clearTimeout) return a = clearTimeout, clearTimeout(e);
- try {
- a(e)
- } catch (t) {
- try {
- return a.call(null, e)
- } catch (t) {
- return a.call(this, e)
- }
- }
- }(e)
- }
- }
-
- function f(e, t) {
- this.fun = e, this.array = t
- }
-
- function v() {}
- r.nextTick = function (e) {
- var t = new Array(arguments.length - 1);
- if (arguments.length > 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