From 29859a474780216b8128945c522544277ff5e02d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=87=E5=A4=A9?= Date: Mon, 21 Jan 2019 03:08:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=9F=B3=E4=B9=90=E6=89=AB?= =?UTF-8?q?=E6=8F=8F;=E4=BF=AE=E5=A4=8D=E6=AD=8C=E8=AF=8D=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E5=9C=A8=E7=89=B9=E6=AE=8A=E5=9C=BA=E6=99=AF=E4=B8=8B?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E7=9A=84bug;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- src/css/app.css | 2 +- src/css/app.scss | 29 +++++++++++++++++++++++ src/images/load1.png | Bin 0 -> 4454 bytes src/images/load2.png | Bin 0 -> 10011 bytes src/index.html | 10 ++++++++ src/js/app.js | 5 ++-- src/js/modules/ktv.js | 1 - src/js/modules/local.js | 50 +++++++++++++++++++++++----------------- src/lib/audio/index.js | 2 +- src/lib/lyrics/index.js | 3 +++ src/main.js | 14 ++++++++++- src/views/local.htm | 3 ++- 13 files changed, 92 insertions(+), 29 deletions(-) create mode 100644 src/images/load1.png create mode 100755 src/images/load2.png diff --git a/package.json b/package.json index 2801eb2..aefc11f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sonist", - "version": "0.9.2", + "version": "0.9.3", "description": "Music Player", "main": "src/main.js", "scripts": { diff --git a/src/css/app.css b/src/css/app.css index e6dea45..e3800a9 100644 --- a/src/css/app.css +++ b/src/css/app.css @@ -1 +1 @@ -@font-face{font-family:"sonist font";src:url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAysAAsAAAAAFOAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADMAAABCsP6z7U9TLzIAAAE8AAAARAAAAFY9ikkYY21hcAAAAYAAAACpAAACRLbi0KRnbHlmAAACLAAACAwAAA0QU/XrjmhlYWQAAAo4AAAALwAAADYTt0/UaGhlYQAACmgAAAAcAAAAJAfeA5FobXR4AAAKhAAAAA8AAABAQAAAAGxvY2EAAAqUAAAAIgAAACIcSBmSbWF4cAAACrgAAAAfAAAAIAElAK5uYW1lAAAK2AAAAVAAAAKRbYZNvnBvc3QAAAwoAAAAgwAAAL22eIcreJxjYGRgYOBikGPQYWB0cfMJYeBgYGGAAJAMY05meiJQDMoDyrGAaQ4gZoOIAgCKIwNPAHicY2BkYWCcwMDKwMHUyXSGgYGhH0IzvmYwYuRgYGBiYGVmwAoC0lxTGByeizxXY27438AQw9zA0AAUZgTJAQDhxQwfeJztkcsRwkAMQ7UkhF8gFyCTQ/iTE7VQECeKoxeVEeQVZWDP2/Has5+RAEwBFOIhSiC9kRDxUjflfoFl7pd4aj9XTgC27DiMo6qtqj6qHEnzjTKqic6WeqHCTN2F7lmhxlrTRuMK/6jz+vntmlDThPbcmaz33oRXbE34xc6Ej+yN9AYPRsqDRyMPwJORG+DZhL+8GDkEXk38jjcj18C7CXc5GDRf39Ms5gAAAHiclRZbbBvHcWfveLf34JFHHo+iJFI6HnUXWzQlPkTKkkxJ1sOO3Ypx7FSGU6dw8+FXArewEyNwP+SiQIPCbSC0QeG/Bkb91SAN0jfqxA5a9KdG0aAoarQoAjQpnI8WSYD2yzx3lkdKsgMZKMGb3Z2dnZ2ZnRcRCP6ENfoT4pIFskgIlMB3J2peDCR7COz6HqjmIG3Jkp22q5V6o457gu9JcspBSlyXQJKllJWjVSdl2bNQr/nClLtavmeoF1RQLqjGvdYZKguaJohKjCqF1gU1CsHHiISsFEmmZK+wtFqGOKdX6c58AcZ1WToom9J+iWnj9HQrk9GSAqjqkFNeDd7qYRslNaWL6vS+8upSoXeEqyOFOqFqGukjBVIme8gB1MzNe7X6NFRsSxLy3oRZq1fslGlJ//8GnVszEgmDgxX8BhMJePJhTPvTz9AQDgcT90nCoDf5ZnvOSFAIse37D2DnutibW7GE0I5ul+kHZIgMo05GRC6hmPwBIummhI/j0p8lfXd4wGb9z+4+fLF/bOrA8spQ9vPLB6bL/RcP0w9ATfRn8+Zk6+LhsUN798w1j+wqPjU735w/tOvwRc6eEXL/vnAZ7TdIRkiJjJFZ8mVyljyH9+Ul2QC80m9Cowl4G67QP3BV84Aj8pJlp3NQqfOpHOEwhQR87ZagEdIm0Zm4OyEL3/ORW0eHLHi+wUksidu9IZxVNBDeXV+/JYq31hVdV67dEcU71xDqwfuKpiV0vQ0cJjQIqhw+vcjJKotLdKFSWQA4sItJUlQUFUlkLPdklcqiojvFysILzujo3tFRB17VlZD/+rsC5xXyR6joUO0y/4/CoaZc4cwXnwbd1OnCmcoCxVvAKx6IGjoVTBY3ygczQHXl34NAFwaAX7B3FEgkfDO0p41RNo7e2ERLmj3Pkl1zw6SVyCa2BBNoBIebw3XQ+2r1qsN3Ogv6hmVciVlW7DRtTc2sULoy47U/sWJ/5LgOgGuGZRnB8QfnEIG/ICaXhPYfplYAWjPTLXARk7UAkm/HkghzlvW2wTFWDCOolx9iJEnSZJU8S75CvkZeJt8jPyCvoR4OPrBp2ShbHQPEExxzBzWd1IQ93XGCUcjLE04T+J7rcCz3khCbcrm3TEOqyyO9iYHuhLNId+i7y3S1yxXXAnpfj6ixzdwXzrZ38nejf0aYCz6CdPsIVIPbgriMLqQsiwLs5/vBLzYx9EezfDYb/InvQLG7mlriSw6u68oynyOY3UB+uMx0nXH8em+zN+Mb9C1daf+mI8qMogdVqAW/PxfjzgQx0BR4hulxyj0OYoae0A0U6RoGgIEEBhXRAXGSCj2RT3EMjvPTnMHDIxE2cqBAZP6KUDXdEfz4CDfX1gL86NoaUrQJUNK+D2v8iNg593X6D5LFyJ8lRwgZkcZ4UfDyBsXYxxhuChWMcPxbIyWoNWklRy2D5j0fi0ClSWsliqQYy54BOag3kmm7Cd4YYM2g78lKwqw41XOnjjZNUPUINRef+eqlqVjD0ZTgG4PZ7ORya18jm23say3vzoztWdgzlukO8GrcdhvRkaU6azaZISjKIcWA25IQ1bN63F04VpMigirtPrHftyL9fYqq/nYAuUxu8Pyhs8kMh+CcIUojS41oIQ/7dFBMg8aoyno2uEx/SipYE79IjqP1moBOGZY3rkkWXM+gaZsnQwPccs87G5202PDqjZEKZrhKHa3ge3JeygFakB9DM/EcmbY3+PnUdk8sRAztkqpe0ozIyotfwFiU2GNZ78SUbsZ1ee75nf6EFhEAYrngm49f8FjaBKU4t7wajUOcfshPzXzJV9ImO/6dkBF87DrVKJOfkBPS52QWrcLO1ZYzYGeKZioV7zMzfemZQtyJZydzS44jJ9PMS9lg9sWDb3fIR3xmppXjVZ3JLTkhE7XrTxR9ycLKs4PsJo+TpzAbPEeef7C2+pbdzf5hTkNXMcDnEcnRwNsGE9GY2NKY+AAtaOIUU0TDxC1hCyfI+9yS9Ry2GBEJenxT9J/nmaax8/jEf9NMVTW118f3AuwdL89TOl8eLhbnR0fhavvmjjpAfQed64zt72eGAYYzdC4cpzaYtD/RI6IkwzIz5Igc/FKEsZAtrGlxDf9JxqH2V5gvl+ehA9+B0fkipvfgMt4A18ObgmM76nQWeQfHwjvgOo5Blwtyk2PiVSESM8SrNPhuyJRhfIY59hbm1z7sVipYH/ajdblVDZqyMNK6pXICjVTFiEKbuRMlTBuS1e3ReGfWkGRhoxyXQHAnJLlzIgUfvTR+dLHAhJgiiJomyvRM6xxln/atTt4DXTuvqi+o0fb40Xwx7gwnV05SenKlxeEu18rGhrQBusJ7tGFH0aiQ1DKZJ07Twf7gvfHdUNYY9mmmfFCSo+OF/Oi0RuE1erK1cgrgFDIJ7n7LVAqCpf/8gb6MazpCamSC9zBbZN7iMnIDYwU9JWy53G7/hfpiPZOSlGw0AwhfuSGKN14J4UsSA2BRxv6lxeMpdoOxG/KbAtmgvXanXdsgRvhjBR1NUhQp+Luk6Az6mC5dkeL4weRnZC6QKkq9vcx+p0fkjp330nlMFTUM8VADYXuRX0ZxOzL/V+vIy1Lx+O8eIfI7mwLjEAqrs+Au01Hkbr+x1c6VR0m81crVXpfLNdhe3rNMA9BMTbuNhdHk80fZN7RpKN/WORdzU1YDO4wB4pPHsOI89Nb+drLDr/CJbfZrhv83X9xO2vcfetS724pK/gdCdDQxeJxjYGRgYABiw9pTE+P5bb4ycLMwgMANH9bXCPr/fxYGZiYgl4MBRDIAACLTCfMAeJxjYGRgYG7438AQw8IAAkCSkQEVCAAARxYCeXicY2FgYGChAAMACMAAQQAAAAAAAGoA2AEKAbICEALsAwgDigQUBMIFNgWQBeoGQAaIAAB4nGNgZGBgEGBYxMDNAAJMQMwFhAwM/8F8BgAayQHUAHicdZDNSsNAFIVP7I+YgAvFrseNgkL6sxEKrgqt6wrdt+mkTUkyZTItdOMbuPB5fApfQJ/CvafpLZRiEzLz3XPPuRkGwBW+4WH33PDbsYeA1Y7PcA4lXKF+L1wld4Rr5GfhOvlF2McjXoUDXOONE7zqBasHfAh7aOBT+AyX+BKuUP8RrpJ/hWtoeIFwnXwr7GPkPQkHuPPe/Z7VY6enarJRSWTy2OTOL0yeFE5teahnq3RsD5QDHGlbJCZX7bB1oA50ru1+ZrGedZyLVWxNpvrs6jQ1amnNQkcunDu37DabsehhZDIesQcLjTEc1ymvdYIN1wQRDHLE5eroK0pKuDv29/qQqRlWSDnBnvD8r46Y3CaSslZoI0TrhHdAb176j89ZYM3/d6g6urcJy0xG6ktW82wpWWFZ9hZUIuoh5mVqiS6afOMjf1jeQPYH10p3s3icbYxbDoIwFAV7Cq0WUHEhLKqRG23sA/sg6upFDX45X5OTyWGcfWnYf3pwVKghILHBFgoNWnTYYY8DehxZpa1VdCvGmidFcSEds3AlmZOarH4M1qTM3VxH7a8yGX+mKBcfgxNRjyZ8NkttCn4pB0/3vPoUae5W1yX9ovcxYy/tJyzCAA==") format("woff")}[class^="s-icon-"],[class*=" s-icon-"]{display:inline-block;font-family:"sonist font" !important;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.s-icon-all:before{content:"\e714"}.s-icon-eq:before{content:"\e715"}.s-icon-heart:before{content:"\e716"}.s-icon-music:before{content:"\e717"}.s-icon-play-list:before{content:"\e719"}.s-icon-mv:before{content:"\e71d"}.s-icon-rank:before{content:"\e71e"}.s-icon-singer:before{content:"\e71f"}.s-icon-random:before{content:"\e720"}.s-icon-radio:before{content:"\e721"}.s-icon-single:before{content:"\e722"}.s-icon-next:before{content:"\e723"}.s-icon-prev:before{content:"\e724"}.s-icon-pause:before{content:"\e725"}.s-icon-play:before{content:"\e726"}.do-fn-drag{-webkit-app-region:drag;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.do-fn-nodrag{-webkit-app-region:no-drag}html{font-size:62.5%}body{position:fixed;left:0;top:0;display:flex;width:100%;height:100%;line-height:1.5;background:#fff;font-size:1.4rem;color:#62778d;background-size:cover;background-repeat:no-repeat}table{overflow:auto;display:table;width:100%;line-height:2.5rem}table thead tr{height:4.5rem;border-bottom:0.1rem solid rgba(200,200,200,0.15)}table thead th{padding:1rem .8rem;border:0}table tbody tr{height:auto;transition:background .3s ease-in-out}table tbody tr:hover{background:rgba(63,194,168,0.08)}table tbody td{padding:.9rem .8rem}::-webkit-scrollbar{width:.6rem;height:.6rem;background:none}::-webkit-scrollbar:hover{background:rgba(255,255,255,0.1)}::-webkit-scrollbar-button{display:none}::-webkit-scrollbar-thumb{background:#dae1e9}::-webkit-scrollbar-thumb:hover{background:#3fc2a7}.do-mod-app{position:relative;display:flex;flex-flow:column wrap;width:100%;height:100%;background:#fff}.do-mod-app .title-bar{position:relative;z-index:9;display:flex;flex:0 5rem}.do-mod-app .title-bar .btn-box{position:absolute;left:1.2rem;top:0;width:auto;height:3rem;padding:.9rem 0}.do-mod-app .title-bar .btn-box .item{display:inline-block;width:1.2rem;height:1.2rem;margin:0 .2rem;background:url(/images/btn-grey.svg) no-repeat;background-size:cover}.do-mod-app .title-bar .btn-box.focus .quit{background-image:url(/images/btn-close.svg)}.do-mod-app .title-bar .btn-box.focus .min{background-image:url(/images/btn-mini.svg)}.do-mod-app .title-bar .btn-box:hover .quit{background-image:url(/images/btn-close_a.svg)}.do-mod-app .title-bar .btn-box:hover .min{background-image:url(/images/btn-mini_a.svg)}.do-mod-app .title-bar .btn-box-win{position:absolute;right:1.2rem;top:0;width:auto;height:4rem;padding:.9rem 0;line-height:1.8rem}.do-mod-app .title-bar .btn-box-win .item,.do-mod-app .title-bar .btn-box-win .opt{position:relative;display:inline-block;width:2.2rem;height:2.2rem;margin:0 .2rem;padding:.2rem;font-size:1.6rem}.do-mod-app .title-bar .btn-box-win .item{text-align:center}.do-mod-app .title-bar .btn-box-win .item:hover{background:rgba(0,0,0,0.05)}.do-mod-app .title-bar .btn-box-win .item.quit:hover{color:#ff5061}.do-mod-app .title-bar .btn-box-win .item.disabled{color:#dae1e9;background:none}.do-mod-app .title-bar .btn-box-win .opt i{font-size:1.8rem}.do-mod-app .title-bar .btn-box-win .opt-list{position:absolute;z-index:100;right:0;top:2.2rem;width:13rem;height:auto;padding:.8rem 0;background:#fff;box-shadow:0 0.5rem 2rem rgba(0,0,0,0.1);font-size:1.4rem}.do-mod-app .title-bar .btn-box-win .opt-list span{display:flex;align-items:center;height:3rem;padding:0 2rem;line-height:3rem}.do-mod-app .title-bar .btn-box-win .opt-list span i{padding-right:.8rem}.do-mod-app .title-bar .btn-box-win .opt-list span.pipe{height:.1rem;margin:.5rem 0;border-bottom:0.1rem solid #f3f5fb}.do-mod-app .title-bar .btn-box-win .opt-list span:hover{background:#f3f5fb}.do-mod-app .title-bar .holder{flex:0 22rem;height:100%;background:#f3f5fb}.do-mod-app .title-bar .tools{flex:1;padding:1rem}.do-mod-app .title-bar .tools .search{position:relative;display:inline-block;line-height:3rem}.do-mod-app .title-bar .tools .icon{position:absolute;right:0;top:0;width:2.6rem;height:3rem}.do-mod-app .title-bar .tools input{width:20rem;padding:0 1.3rem;border-radius:1.5rem}.do-mod-app .main-body{flex:1;display:flex}.do-mod-app .main-body .sidebar{flex:0 22rem;position:relative;height:100%;background:#f3f5fb}.do-mod-app .main-body .sidebar .user-box{width:18rem;height:16.5rem;margin:0 2rem;text-align:center}.do-mod-app .main-body .sidebar .user-box .avatar{overflow:hidden;width:12rem;height:12rem;margin:0 3rem;border:.6rem solid #fff;border-radius:50%;box-shadow:0 0.5rem 1.5rem rgba(0,0,0,0.15)}.do-mod-app .main-body .sidebar .user-box img{width:100%;height:100%}.do-mod-app .main-body .sidebar .user-box .uname{line-height:2;font-weight:normal}.do-mod-app .main-body .sidebar .music-box{width:100%;height:auto;padding:0 1.5rem}.do-mod-app .main-body .sidebar .music-box dt.title{line-height:4rem;color:#98acae}.do-mod-app .main-body .sidebar .music-box dd.item{height:3rem;margin:.3rem 0;padding:0 .8rem;line-height:3rem;color:#748182}.do-mod-app .main-body .sidebar .music-box dd.item .icon{float:left;width:3rem;height:3rem;padding:0 .5rem;font-size:2.4rem}.do-mod-app .main-body .sidebar .music-box dd.item:hover{padding-left:.9rem;color:#3fc2a7}.do-mod-app .main-body .sidebar .music-box dd.item.active{border-radius:.3rem;background:#3fc2a7;color:#fff}.do-mod-app .main-body .sidebar .music-box dd.item.disabled{opacity:.25}.do-mod-app .main-body .module{position:relative;flex:1;display:flex;flex-flow:column wrap}.do-mod-app .contrl-bar{position:relative;z-index:99;display:flex;flex:0 8rem;background:#f3f5fb}.do-mod-app .contrl-bar .play-box{flex:0 22rem;display:flex;justify-content:center;align-items:center;height:8rem;padding:1rem 2rem;text-align:center}.do-mod-app .contrl-bar .play-box .item{flex:0 5rem;margin:0 .5rem;line-height:1;font-size:4.2rem;color:#19b491;transition:all .2s ease-in-out}.do-mod-app .contrl-bar .play-box .item:hover{color:#ffb618}.do-mod-app .contrl-bar .play-box .item:active{color:#3fc2a7;-webkit-transform:scale(1.1);transform:scale(1.1)}.do-mod-app .contrl-bar .play-box .play{font-size:5rem}.do-mod-app .contrl-bar .stat-box{position:relative;flex:1;display:flex;justify-content:center;align-items:center}.do-mod-app .contrl-bar .stat-box .song-stat{flex:1;height:8rem;margin:0 2rem 0 0}.do-mod-app .contrl-bar .stat-box .song-stat canvas{display:flex;width:100%;height:100%}.do-mod-app .contrl-bar .stat-box .ctrl{position:relative;flex:0 1 3.5rem;height:3rem;line-height:3rem;text-align:center;color:#19b491;font-size:2rem}.do-mod-app .contrl-bar .stat-box .ctrl:hover{color:#3fc2a7}.do-mod-app .contrl-bar .stat-box .ctrl:active{color:#16967a}.do-mod-app .contrl-bar .stat-box .ctrl.lrc{margin-right:2rem;font-size:1.6rem}.do-mod-app .contrl-bar .stat-box .ctrl .volume-ctrl{display:none;flex-direction:column;justify-content:flex-end;position:absolute;left:.5rem;bottom:3rem;width:2.4rem;height:12rem;padding:1rem .8rem;background:#fff;border-radius:.3rem;box-shadow:0 0 1rem rgba(0,0,0,0.1)}.do-mod-app .contrl-bar .stat-box .ctrl .volume-ctrl em{flex:0 0;border-radius:.5rem;background:#3fc2a7}.do-mod-app .contrl-bar .stat-box .ctrl.volume:hover .volume-ctrl{display:flex}.do-mod-app.blur{background:rgba(255,255,255,0.85);-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem)}.do-mod-app.blur .title-bar .holder{background:rgba(255,255,255,0.3)}.do-mod-app.blur .title-bar .tools input{background:rgba(255,255,255,0.8)}.do-mod-app.blur .main-body .sidebar{background:rgba(255,255,255,0.3)}.do-mod-app.blur .contrl-bar{background:rgba(255,255,255,0.35)}.do-mod-app.ktv .contrl-bar{background:rgba(233,233,233,0.1)}.do-mod-app.ktv .contrl-bar .play-box .item,.do-mod-app.ktv .contrl-bar .stat-box .ctrl{color:#fff}.do-mod-app.ktv .contrl-bar .play-box .item:hover,.do-mod-app.ktv .contrl-bar .stat-box .ctrl:hover{color:#ff5061}.do-mod-app .ktv-box{overflow:hidden;position:absolute;z-index:80;left:0;top:0;width:100%;height:100%;background-color:#425064;background-size:cover;background-repeat:no-repeat;color:#fff}.do-mod-app .ktv-box .inner-content{display:flex;flex-flow:column wrap;width:100%;height:100%;padding-bottom:8rem;background:rgba(29,35,44,0.767);-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem)}.do-mod-app .ktv-box .inner-content .info{flex:1;display:flex;justify-content:center;align-items:center;padding:0 10rem;line-height:2}.do-mod-app .ktv-box .inner-content .info img{width:30rem;height:30rem;border:0.5rem solid rgba(255,255,255,0.5);border-radius:50%}.do-mod-app .ktv-box .inner-content .info .summary{flex:1;padding:0 5rem}.do-mod-app .ktv-box .inner-content .info pre{overflow:auto;height:30rem}.do-mod-app .ktv-box .inner-content .info h3{line-height:3;font-size:1.8rem}.do-mod-app .ktv-box .inner-content .lrc-box{flex:0 10rem;display:flex;flex-flow:column wrap;padding:0 5rem;line-height:5rem;color:#fff;font-size:3rem}.do-mod-app .ktv-box .inner-content .lrc-box section{flex:1;display:flex}.do-mod-app .ktv-box .inner-content .lrc-box section.left{justify-content:flex-start}.do-mod-app .ktv-box .inner-content .lrc-box section.right{justify-content:flex-end}.do-mod-app .ktv-box .inner-content .lrc-box section span{-webkit-background-clip:text !important;background-clip:text !important;color:transparent}.do-mod-app .ktv-box .inner-content .tool-box{position:absolute;right:0;top:15rem;width:13rem;height:auto;padding:1.5rem 0;background:rgba(255,255,255,0.1);border-radius:.3rem 0 0 .3rem;opacity:.3;-webkit-transform:translateX(8.8rem);transform:translateX(8.8rem);transition:all .2s ease-in-out}.do-mod-app .ktv-box .inner-content .tool-box .item{height:3.4rem;padding:0 .8rem;line-height:3.4rem}.do-mod-app .ktv-box .inner-content .tool-box .item:hover{background:rgba(255,255,255,0.1)}.do-mod-app .ktv-box .inner-content .tool-box i{padding:0 1rem 0 .8rem}.do-mod-app .ktv-box .inner-content .tool-box:hover{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}.do-mod-app .ktv-box .inner-content .search-box{display:flex;justify-content:center;align-items:center;position:absolute;left:0;top:0;z-index:82;width:100%;height:56rem;background:rgba(29,35,44,0.5);-webkit-backdrop-filter:blur(0.4rem);backdrop-filter:blur(0.4rem)}.do-mod-app .ktv-box .inner-content .search-box .content{width:60rem;height:auto;padding:2rem;background:rgba(255,255,255,0.8);color:#62778d}.do-mod-app .ktv-box .inner-content .search-box .content .title{height:3rem;line-height:2rem;font-size:1.4rem;text-align:center}.do-mod-app .ktv-box .inner-content .search-box .content .title i{float:right;font-size:2rem;color:#ff5061}.do-mod-app .ktv-box .inner-content .search-box .content .section{height:3.5rem}.do-mod-app .ktv-box .inner-content .search-box .content .section input{width:100%}.do-mod-app .ktv-box .inner-content .search-box .content .result{overflow-y:auto;width:100%;max-height:30rem;padding:1rem;background:rgba(255,255,255,0.2)}.do-mod-app .ktv-box .inner-content .search-box .content .result .item{display:flex;justify-content:center;align-items:center;margin:.3rem 0;text-align:center}.do-mod-app .ktv-box .inner-content .search-box .content .result .item:nth-child(1){line-height:2;border-bottom:0.1rem solid #98acae}.do-mod-app .ktv-box .inner-content .search-box .content .result .item span{flex:1}.do-mod-app .ktv-box .inner-content .search-box .content .result .item span:nth-child(1){flex:3}.do-mod-contextmenu{width:145px;height:auto;padding:8px 0;line-height:35px;font-size:1.3rem}.do-mod-contextmenu li{overflow:hidden;width:100%;height:35px;padding:0 10px;transition:background .2s ease-in-out;cursor:default}.do-mod-contextmenu li:hover{background:#f3f5fb}.do-mod-contextmenu li i{padding:0 3px;font-size:1.6rem;vertical-align:bottom}.do-layer .layer-box.do-mod-contextmenu__fixed{padding:0}@-webkit-keyframes play{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes play{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}} +@font-face{font-family:"sonist font";src:url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAysAAsAAAAAFOAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADMAAABCsP6z7U9TLzIAAAE8AAAARAAAAFY9ikkYY21hcAAAAYAAAACpAAACRLbi0KRnbHlmAAACLAAACAwAAA0QU/XrjmhlYWQAAAo4AAAALwAAADYTt0/UaGhlYQAACmgAAAAcAAAAJAfeA5FobXR4AAAKhAAAAA8AAABAQAAAAGxvY2EAAAqUAAAAIgAAACIcSBmSbWF4cAAACrgAAAAfAAAAIAElAK5uYW1lAAAK2AAAAVAAAAKRbYZNvnBvc3QAAAwoAAAAgwAAAL22eIcreJxjYGRgYOBikGPQYWB0cfMJYeBgYGGAAJAMY05meiJQDMoDyrGAaQ4gZoOIAgCKIwNPAHicY2BkYWCcwMDKwMHUyXSGgYGhH0IzvmYwYuRgYGBiYGVmwAoC0lxTGByeizxXY27438AQw9zA0AAUZgTJAQDhxQwfeJztkcsRwkAMQ7UkhF8gFyCTQ/iTE7VQECeKoxeVEeQVZWDP2/Has5+RAEwBFOIhSiC9kRDxUjflfoFl7pd4aj9XTgC27DiMo6qtqj6qHEnzjTKqic6WeqHCTN2F7lmhxlrTRuMK/6jz+vntmlDThPbcmaz33oRXbE34xc6Ej+yN9AYPRsqDRyMPwJORG+DZhL+8GDkEXk38jjcj18C7CXc5GDRf39Ms5gAAAHiclRZbbBvHcWfveLf34JFHHo+iJFI6HnUXWzQlPkTKkkxJ1sOO3Ypx7FSGU6dw8+FXArewEyNwP+SiQIPCbSC0QeG/Bkb91SAN0jfqxA5a9KdG0aAoarQoAjQpnI8WSYD2yzx3lkdKsgMZKMGb3Z2dnZ2ZnRcRCP6ENfoT4pIFskgIlMB3J2peDCR7COz6HqjmIG3Jkp22q5V6o457gu9JcspBSlyXQJKllJWjVSdl2bNQr/nClLtavmeoF1RQLqjGvdYZKguaJohKjCqF1gU1CsHHiISsFEmmZK+wtFqGOKdX6c58AcZ1WToom9J+iWnj9HQrk9GSAqjqkFNeDd7qYRslNaWL6vS+8upSoXeEqyOFOqFqGukjBVIme8gB1MzNe7X6NFRsSxLy3oRZq1fslGlJ//8GnVszEgmDgxX8BhMJePJhTPvTz9AQDgcT90nCoDf5ZnvOSFAIse37D2DnutibW7GE0I5ul+kHZIgMo05GRC6hmPwBIummhI/j0p8lfXd4wGb9z+4+fLF/bOrA8spQ9vPLB6bL/RcP0w9ATfRn8+Zk6+LhsUN798w1j+wqPjU735w/tOvwRc6eEXL/vnAZ7TdIRkiJjJFZ8mVyljyH9+Ul2QC80m9Cowl4G67QP3BV84Aj8pJlp3NQqfOpHOEwhQR87ZagEdIm0Zm4OyEL3/ORW0eHLHi+wUksidu9IZxVNBDeXV+/JYq31hVdV67dEcU71xDqwfuKpiV0vQ0cJjQIqhw+vcjJKotLdKFSWQA4sItJUlQUFUlkLPdklcqiojvFysILzujo3tFRB17VlZD/+rsC5xXyR6joUO0y/4/CoaZc4cwXnwbd1OnCmcoCxVvAKx6IGjoVTBY3ygczQHXl34NAFwaAX7B3FEgkfDO0p41RNo7e2ERLmj3Pkl1zw6SVyCa2BBNoBIebw3XQ+2r1qsN3Ogv6hmVciVlW7DRtTc2sULoy47U/sWJ/5LgOgGuGZRnB8QfnEIG/ICaXhPYfplYAWjPTLXARk7UAkm/HkghzlvW2wTFWDCOolx9iJEnSZJU8S75CvkZeJt8jPyCvoR4OPrBp2ShbHQPEExxzBzWd1IQ93XGCUcjLE04T+J7rcCz3khCbcrm3TEOqyyO9iYHuhLNId+i7y3S1yxXXAnpfj6ixzdwXzrZ38nejf0aYCz6CdPsIVIPbgriMLqQsiwLs5/vBLzYx9EezfDYb/InvQLG7mlriSw6u68oynyOY3UB+uMx0nXH8em+zN+Mb9C1daf+mI8qMogdVqAW/PxfjzgQx0BR4hulxyj0OYoae0A0U6RoGgIEEBhXRAXGSCj2RT3EMjvPTnMHDIxE2cqBAZP6KUDXdEfz4CDfX1gL86NoaUrQJUNK+D2v8iNg593X6D5LFyJ8lRwgZkcZ4UfDyBsXYxxhuChWMcPxbIyWoNWklRy2D5j0fi0ClSWsliqQYy54BOag3kmm7Cd4YYM2g78lKwqw41XOnjjZNUPUINRef+eqlqVjD0ZTgG4PZ7ORya18jm23say3vzoztWdgzlukO8GrcdhvRkaU6azaZISjKIcWA25IQ1bN63F04VpMigirtPrHftyL9fYqq/nYAuUxu8Pyhs8kMh+CcIUojS41oIQ/7dFBMg8aoyno2uEx/SipYE79IjqP1moBOGZY3rkkWXM+gaZsnQwPccs87G5202PDqjZEKZrhKHa3ge3JeygFakB9DM/EcmbY3+PnUdk8sRAztkqpe0ozIyotfwFiU2GNZ78SUbsZ1ee75nf6EFhEAYrngm49f8FjaBKU4t7wajUOcfshPzXzJV9ImO/6dkBF87DrVKJOfkBPS52QWrcLO1ZYzYGeKZioV7zMzfemZQtyJZydzS44jJ9PMS9lg9sWDb3fIR3xmppXjVZ3JLTkhE7XrTxR9ycLKs4PsJo+TpzAbPEeef7C2+pbdzf5hTkNXMcDnEcnRwNsGE9GY2NKY+AAtaOIUU0TDxC1hCyfI+9yS9Ry2GBEJenxT9J/nmaax8/jEf9NMVTW118f3AuwdL89TOl8eLhbnR0fhavvmjjpAfQed64zt72eGAYYzdC4cpzaYtD/RI6IkwzIz5Igc/FKEsZAtrGlxDf9JxqH2V5gvl+ehA9+B0fkipvfgMt4A18ObgmM76nQWeQfHwjvgOo5Blwtyk2PiVSESM8SrNPhuyJRhfIY59hbm1z7sVipYH/ajdblVDZqyMNK6pXICjVTFiEKbuRMlTBuS1e3ReGfWkGRhoxyXQHAnJLlzIgUfvTR+dLHAhJgiiJomyvRM6xxln/atTt4DXTuvqi+o0fb40Xwx7gwnV05SenKlxeEu18rGhrQBusJ7tGFH0aiQ1DKZJ07Twf7gvfHdUNYY9mmmfFCSo+OF/Oi0RuE1erK1cgrgFDIJ7n7LVAqCpf/8gb6MazpCamSC9zBbZN7iMnIDYwU9JWy53G7/hfpiPZOSlGw0AwhfuSGKN14J4UsSA2BRxv6lxeMpdoOxG/KbAtmgvXanXdsgRvhjBR1NUhQp+Luk6Az6mC5dkeL4weRnZC6QKkq9vcx+p0fkjp330nlMFTUM8VADYXuRX0ZxOzL/V+vIy1Lx+O8eIfI7mwLjEAqrs+Au01Hkbr+x1c6VR0m81crVXpfLNdhe3rNMA9BMTbuNhdHk80fZN7RpKN/WORdzU1YDO4wB4pPHsOI89Nb+drLDr/CJbfZrhv83X9xO2vcfetS724pK/gdCdDQxeJxjYGRgYABiw9pTE+P5bb4ycLMwgMANH9bXCPr/fxYGZiYgl4MBRDIAACLTCfMAeJxjYGRgYG7438AQw8IAAkCSkQEVCAAARxYCeXicY2FgYGChAAMACMAAQQAAAAAAAGoA2AEKAbICEALsAwgDigQUBMIFNgWQBeoGQAaIAAB4nGNgZGBgEGBYxMDNAAJMQMwFhAwM/8F8BgAayQHUAHicdZDNSsNAFIVP7I+YgAvFrseNgkL6sxEKrgqt6wrdt+mkTUkyZTItdOMbuPB5fApfQJ/CvafpLZRiEzLz3XPPuRkGwBW+4WH33PDbsYeA1Y7PcA4lXKF+L1wld4Rr5GfhOvlF2McjXoUDXOONE7zqBasHfAh7aOBT+AyX+BKuUP8RrpJ/hWtoeIFwnXwr7GPkPQkHuPPe/Z7VY6enarJRSWTy2OTOL0yeFE5teahnq3RsD5QDHGlbJCZX7bB1oA50ru1+ZrGedZyLVWxNpvrs6jQ1amnNQkcunDu37DabsehhZDIesQcLjTEc1ymvdYIN1wQRDHLE5eroK0pKuDv29/qQqRlWSDnBnvD8r46Y3CaSslZoI0TrhHdAb176j89ZYM3/d6g6urcJy0xG6ktW82wpWWFZ9hZUIuoh5mVqiS6afOMjf1jeQPYH10p3s3icbYxbDoIwFAV7Cq0WUHEhLKqRG23sA/sg6upFDX45X5OTyWGcfWnYf3pwVKghILHBFgoNWnTYYY8DehxZpa1VdCvGmidFcSEds3AlmZOarH4M1qTM3VxH7a8yGX+mKBcfgxNRjyZ8NkttCn4pB0/3vPoUae5W1yX9ovcxYy/tJyzCAA==") format("woff")}[class^="s-icon-"],[class*=" s-icon-"]{display:inline-block;font-family:"sonist font" !important;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.s-icon-all:before{content:"\e714"}.s-icon-eq:before{content:"\e715"}.s-icon-heart:before{content:"\e716"}.s-icon-music:before{content:"\e717"}.s-icon-play-list:before{content:"\e719"}.s-icon-mv:before{content:"\e71d"}.s-icon-rank:before{content:"\e71e"}.s-icon-singer:before{content:"\e71f"}.s-icon-random:before{content:"\e720"}.s-icon-radio:before{content:"\e721"}.s-icon-single:before{content:"\e722"}.s-icon-next:before{content:"\e723"}.s-icon-prev:before{content:"\e724"}.s-icon-pause:before{content:"\e725"}.s-icon-play:before{content:"\e726"}.do-fn-drag{-webkit-app-region:drag;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.do-fn-nodrag{-webkit-app-region:no-drag}html{font-size:62.5%}body{position:fixed;left:0;top:0;display:flex;width:100%;height:100%;line-height:1.5;background:#fff;font-size:1.4rem;color:#62778d;background-size:cover;background-repeat:no-repeat}table{overflow:auto;display:table;width:100%;line-height:2.5rem}table thead tr{height:4.5rem;border-bottom:0.1rem solid rgba(200,200,200,0.15)}table thead th{padding:1rem .8rem;border:0}table tbody tr{height:auto;transition:background .3s ease-in-out}table tbody tr:hover{background:rgba(63,194,168,0.08)}table tbody td{padding:.9rem .8rem}::-webkit-scrollbar{width:.6rem;height:.6rem;background:none}::-webkit-scrollbar:hover{background:rgba(255,255,255,0.1)}::-webkit-scrollbar-button{display:none}::-webkit-scrollbar-thumb{background:#dae1e9}::-webkit-scrollbar-thumb:hover{background:#3fc2a7}.do-mod-app{position:relative;display:flex;flex-flow:column wrap;width:100%;height:100%;background:#fff}.do-mod-app .title-bar{position:relative;z-index:9;display:flex;flex:0 5rem}.do-mod-app .title-bar .btn-box{position:absolute;left:1.2rem;top:0;width:auto;height:3rem;padding:.9rem 0}.do-mod-app .title-bar .btn-box .item{display:inline-block;width:1.2rem;height:1.2rem;margin:0 .2rem;background:url(/images/btn-grey.svg) no-repeat;background-size:cover}.do-mod-app .title-bar .btn-box.focus .quit{background-image:url(/images/btn-close.svg)}.do-mod-app .title-bar .btn-box.focus .min{background-image:url(/images/btn-mini.svg)}.do-mod-app .title-bar .btn-box:hover .quit{background-image:url(/images/btn-close_a.svg)}.do-mod-app .title-bar .btn-box:hover .min{background-image:url(/images/btn-mini_a.svg)}.do-mod-app .title-bar .btn-box-win{position:absolute;right:1.2rem;top:0;width:auto;height:4rem;padding:.9rem 0;line-height:1.8rem}.do-mod-app .title-bar .btn-box-win .item,.do-mod-app .title-bar .btn-box-win .opt{position:relative;display:inline-block;width:2.2rem;height:2.2rem;margin:0 .2rem;padding:.2rem;font-size:1.6rem}.do-mod-app .title-bar .btn-box-win .item{text-align:center}.do-mod-app .title-bar .btn-box-win .item:hover{background:rgba(0,0,0,0.05)}.do-mod-app .title-bar .btn-box-win .item.quit:hover{color:#ff5061}.do-mod-app .title-bar .btn-box-win .item.disabled{color:#dae1e9;background:none}.do-mod-app .title-bar .btn-box-win .opt i{font-size:1.8rem}.do-mod-app .title-bar .btn-box-win .opt-list{position:absolute;z-index:100;right:0;top:2.2rem;width:13rem;height:auto;padding:.8rem 0;background:#fff;box-shadow:0 0.5rem 2rem rgba(0,0,0,0.1);font-size:1.4rem}.do-mod-app .title-bar .btn-box-win .opt-list span{display:flex;align-items:center;height:3rem;padding:0 2rem;line-height:3rem}.do-mod-app .title-bar .btn-box-win .opt-list span i{padding-right:.8rem}.do-mod-app .title-bar .btn-box-win .opt-list span.pipe{height:.1rem;margin:.5rem 0;border-bottom:0.1rem solid #f3f5fb}.do-mod-app .title-bar .btn-box-win .opt-list span:hover{background:#f3f5fb}.do-mod-app .title-bar .holder{flex:0 22rem;height:100%;background:#f3f5fb}.do-mod-app .title-bar .tools{flex:1;padding:1rem}.do-mod-app .title-bar .tools .search{position:relative;display:inline-block;line-height:3rem}.do-mod-app .title-bar .tools .icon{position:absolute;right:0;top:0;width:2.6rem;height:3rem}.do-mod-app .title-bar .tools input{width:20rem;padding:0 1.3rem;border-radius:1.5rem}.do-mod-app .main-body{flex:1;display:flex}.do-mod-app .main-body .sidebar{flex:0 22rem;position:relative;height:100%;background:#f3f5fb}.do-mod-app .main-body .sidebar .user-box{width:18rem;height:16.5rem;margin:0 2rem;text-align:center}.do-mod-app .main-body .sidebar .user-box .avatar{overflow:hidden;width:12rem;height:12rem;margin:0 3rem;border:.6rem solid #fff;border-radius:50%;box-shadow:0 0.5rem 1.5rem rgba(0,0,0,0.15)}.do-mod-app .main-body .sidebar .user-box img{width:100%;height:100%}.do-mod-app .main-body .sidebar .user-box .uname{line-height:2;font-weight:normal}.do-mod-app .main-body .sidebar .music-box{width:100%;height:auto;padding:0 1.5rem}.do-mod-app .main-body .sidebar .music-box dt.title{line-height:4rem;color:#98acae}.do-mod-app .main-body .sidebar .music-box dd.item{height:3rem;margin:.3rem 0;padding:0 .8rem;line-height:3rem;color:#748182}.do-mod-app .main-body .sidebar .music-box dd.item .icon{float:left;width:3rem;height:3rem;padding:0 .5rem;font-size:2.4rem}.do-mod-app .main-body .sidebar .music-box dd.item:hover{padding-left:.9rem;color:#3fc2a7}.do-mod-app .main-body .sidebar .music-box dd.item.active{border-radius:.3rem;background:#3fc2a7;color:#fff}.do-mod-app .main-body .sidebar .music-box dd.item.disabled{opacity:.25}.do-mod-app .main-body .module{position:relative;flex:1;display:flex;flex-flow:column wrap}.do-mod-app .contrl-bar{position:relative;z-index:99;display:flex;flex:0 8rem;background:#f3f5fb}.do-mod-app .contrl-bar .play-box{flex:0 22rem;display:flex;justify-content:center;align-items:center;height:8rem;padding:1rem 2rem;text-align:center}.do-mod-app .contrl-bar .play-box .item{flex:0 5rem;margin:0 .5rem;line-height:1;font-size:4.2rem;color:#19b491;transition:all .2s ease-in-out}.do-mod-app .contrl-bar .play-box .item:hover{color:#ffb618}.do-mod-app .contrl-bar .play-box .item:active{color:#3fc2a7;-webkit-transform:scale(1.1);transform:scale(1.1)}.do-mod-app .contrl-bar .play-box .play{font-size:5rem}.do-mod-app .contrl-bar .stat-box{position:relative;flex:1;display:flex;justify-content:center;align-items:center}.do-mod-app .contrl-bar .stat-box .song-stat{flex:1;height:8rem;margin:0 2rem 0 0}.do-mod-app .contrl-bar .stat-box .song-stat canvas{display:flex;width:100%;height:100%}.do-mod-app .contrl-bar .stat-box .ctrl{position:relative;flex:0 1 3.5rem;height:3rem;line-height:3rem;text-align:center;color:#19b491;font-size:2rem}.do-mod-app .contrl-bar .stat-box .ctrl:hover{color:#3fc2a7}.do-mod-app .contrl-bar .stat-box .ctrl:active{color:#16967a}.do-mod-app .contrl-bar .stat-box .ctrl.lrc{margin-right:2rem;font-size:1.6rem}.do-mod-app .contrl-bar .stat-box .ctrl .volume-ctrl{display:none;flex-direction:column;justify-content:flex-end;position:absolute;left:.5rem;bottom:3rem;width:2.4rem;height:12rem;padding:1rem .8rem;background:#fff;border-radius:.3rem;box-shadow:0 0 1rem rgba(0,0,0,0.1)}.do-mod-app .contrl-bar .stat-box .ctrl .volume-ctrl em{flex:0 0;border-radius:.5rem;background:#3fc2a7}.do-mod-app .contrl-bar .stat-box .ctrl.volume:hover .volume-ctrl{display:flex}.do-mod-app.blur{background:rgba(255,255,255,0.85);-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem)}.do-mod-app.blur .title-bar .holder{background:rgba(255,255,255,0.3)}.do-mod-app.blur .title-bar .tools input{background:rgba(255,255,255,0.8)}.do-mod-app.blur .main-body .sidebar{background:rgba(255,255,255,0.3)}.do-mod-app.blur .contrl-bar{background:rgba(255,255,255,0.35)}.do-mod-app.ktv .contrl-bar{background:rgba(233,233,233,0.1)}.do-mod-app.ktv .contrl-bar .play-box .item,.do-mod-app.ktv .contrl-bar .stat-box .ctrl{color:#fff}.do-mod-app.ktv .contrl-bar .play-box .item:hover,.do-mod-app.ktv .contrl-bar .stat-box .ctrl:hover{color:#ff5061}.do-mod-app .ktv-box{overflow:hidden;position:absolute;z-index:80;left:0;top:0;width:100%;height:100%;background-color:#425064;background-size:cover;background-repeat:no-repeat;color:#fff}.do-mod-app .ktv-box .inner-content{display:flex;flex-flow:column wrap;width:100%;height:100%;padding-bottom:8rem;background:rgba(29,35,44,0.767);-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem)}.do-mod-app .ktv-box .inner-content .info{flex:1;display:flex;justify-content:center;align-items:center;padding:0 10rem;line-height:2}.do-mod-app .ktv-box .inner-content .info img{width:30rem;height:30rem;border:0.5rem solid rgba(255,255,255,0.5);border-radius:50%}.do-mod-app .ktv-box .inner-content .info .summary{flex:1;padding:0 5rem}.do-mod-app .ktv-box .inner-content .info pre{overflow:auto;height:30rem}.do-mod-app .ktv-box .inner-content .info h3{line-height:3;font-size:1.8rem}.do-mod-app .ktv-box .inner-content .lrc-box{flex:0 10rem;display:flex;flex-flow:column wrap;padding:0 5rem;line-height:5rem;color:#fff;font-size:3rem}.do-mod-app .ktv-box .inner-content .lrc-box section{flex:1;display:flex}.do-mod-app .ktv-box .inner-content .lrc-box section.left{justify-content:flex-start}.do-mod-app .ktv-box .inner-content .lrc-box section.right{justify-content:flex-end}.do-mod-app .ktv-box .inner-content .lrc-box section span{-webkit-background-clip:text !important;background-clip:text !important;color:transparent}.do-mod-app .ktv-box .inner-content .tool-box{position:absolute;right:0;top:15rem;width:13rem;height:auto;padding:1.5rem 0;background:rgba(255,255,255,0.1);border-radius:.3rem 0 0 .3rem;opacity:.3;-webkit-transform:translateX(8.8rem);transform:translateX(8.8rem);transition:all .2s ease-in-out}.do-mod-app .ktv-box .inner-content .tool-box .item{height:3.4rem;padding:0 .8rem;line-height:3.4rem}.do-mod-app .ktv-box .inner-content .tool-box .item:hover{background:rgba(255,255,255,0.1)}.do-mod-app .ktv-box .inner-content .tool-box i{padding:0 1rem 0 .8rem}.do-mod-app .ktv-box .inner-content .tool-box:hover{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}.do-mod-app .ktv-box .inner-content .search-box{display:flex;justify-content:center;align-items:center;position:absolute;left:0;top:0;z-index:82;width:100%;height:56rem;background:rgba(29,35,44,0.5);-webkit-backdrop-filter:blur(0.4rem);backdrop-filter:blur(0.4rem)}.do-mod-app .ktv-box .inner-content .search-box .content{width:60rem;height:auto;padding:2rem;background:rgba(255,255,255,0.8);color:#62778d}.do-mod-app .ktv-box .inner-content .search-box .content .title{height:3rem;line-height:2rem;font-size:1.4rem;text-align:center}.do-mod-app .ktv-box .inner-content .search-box .content .title i{float:right;font-size:2rem;color:#ff5061}.do-mod-app .ktv-box .inner-content .search-box .content .section{height:3.5rem}.do-mod-app .ktv-box .inner-content .search-box .content .section input{width:100%}.do-mod-app .ktv-box .inner-content .search-box .content .result{overflow-y:auto;width:100%;max-height:30rem;padding:1rem;background:rgba(255,255,255,0.2)}.do-mod-app .ktv-box .inner-content .search-box .content .result .item{display:flex;justify-content:center;align-items:center;margin:.3rem 0;text-align:center}.do-mod-app .ktv-box .inner-content .search-box .content .result .item:nth-child(1){line-height:2;border-bottom:0.1rem solid #98acae}.do-mod-app .ktv-box .inner-content .search-box .content .result .item span{flex:1}.do-mod-app .ktv-box .inner-content .search-box .content .result .item span:nth-child(1){flex:3}.do-mod-app .loading{position:fixed;left:0;top:0;z-index:65536;display:flex;justify-content:center;align-items:center;width:100%;height:100%}.do-mod-app .loading .box{position:relative;display:flex;justify-content:center;align-items:center;width:8rem;height:8rem}.do-mod-app .loading .box i{position:absolute;width:8rem;height:8rem;border:3px solid #3fc2a7;border-radius:50%;opacity:.5}.do-mod-app .loading .box i:nth-child(1){-webkit-animation:load 2.5s ease-in-out infinite;animation:load 2.5s ease-in-out infinite}.do-mod-app .loading .box i:nth-child(2){-webkit-animation:load 2.5s .5s ease-in-out infinite;animation:load 2.5s .5s ease-in-out infinite}.do-mod-app .loading .box i:nth-child(3){-webkit-animation:load 2.5s 1s ease-in-out infinite;animation:load 2.5s 1s ease-in-out infinite}.do-mod-app .loading .box i:nth-child(4){-webkit-animation:load 2.5s 1.5s ease-in-out infinite;animation:load 2.5s 1.5s ease-in-out infinite}.do-mod-app .loading .box i:nth-child(5){-webkit-animation:load 2.5s 2s ease-in-out infinite;animation:load 2.5s 2s ease-in-out infinite}.do-mod-app .loading .box span{position:absolute;width:8rem;height:8rem;background:url(/images/load1.png) no-repeat center center;background-size:cover}.do-mod-app .loading .box span:nth-child(6){-webkit-animation:play 1.5s linear infinite;animation:play 1.5s linear infinite}.do-mod-app .loading .box span:nth-child(7){background-image:url(/images/load2.png);-webkit-animation:load2 2.5s linear infinite;animation:load2 2.5s linear infinite}.do-mod-app .loading .box cite{font-size:2.4rem}.do-mod-contextmenu{width:145px;height:auto;padding:8px 0;line-height:35px;font-size:1.3rem}.do-mod-contextmenu li{overflow:hidden;width:100%;height:35px;padding:0 10px;transition:background .2s ease-in-out;cursor:default}.do-mod-contextmenu li:hover{background:#f3f5fb}.do-mod-contextmenu li i{padding:0 3px;font-size:1.6rem;vertical-align:bottom}.do-layer .layer-box.do-mod-contextmenu__fixed{padding:0}@-webkit-keyframes load{from{opacity:.5;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}}@keyframes load{from{opacity:.5;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}}@-webkit-keyframes load2{from{-webkit-transform:rotate(360deg);transform:rotate(360deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes load2{from{-webkit-transform:rotate(360deg);transform:rotate(360deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes play{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes play{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}} diff --git a/src/css/app.scss b/src/css/app.scss index 055fe34..1063507 100644 --- a/src/css/app.scss +++ b/src/css/app.scss @@ -294,6 +294,27 @@ table {overflow:auto;display:table;width:100%;line-height:2.5rem; } + .loading {position:fixed;left:0;top:0;z-index:65536;display:flex;justify-content:center;align-items:center;width:100%;height:100%; + + .box {position:relative;display:flex;justify-content:center;align-items:center;width:8rem;height:8rem; + + i {position:absolute;width:8rem;height:8rem;border:3px solid nth($ct, 1);border-radius:50%;opacity:.5; + &:nth-child(1) {animation:load 2.5s ease-in-out infinite;} + &:nth-child(2) {animation:load 2.5s .5s ease-in-out infinite;} + &:nth-child(3) {animation:load 2.5s 1s ease-in-out infinite;} + &:nth-child(4) {animation:load 2.5s 1.5s ease-in-out infinite;} + &:nth-child(5) {animation:load 2.5s 2s ease-in-out infinite;} + } + span {position:absolute;width:8rem;height:8rem;background:url(/images/load1.png) no-repeat center center;background-size:cover; + + &:nth-child(6) {animation:play 1.5s linear infinite;} + &:nth-child(7) {background-image:url(/images/load2.png);animation:load2 2.5s linear infinite;} + } + cite {font-size:2.4rem} + } + + } + } @@ -320,7 +341,15 @@ table {overflow:auto;display:table;width:100%;line-height:2.5rem; .do-layer .layer-box.do-mod-contextmenu__fixed {padding:0} +@keyframes load { + from {opacity: .5; transform: scale(1)} + to {opacity: 0; transform: scale(1.5)} +} +@keyframes load2 { + from {transform:rotate(360deg)} + to {transform:rotate(0deg)} +} @keyframes play { from {transform:rotate(0deg)} diff --git a/src/images/load1.png b/src/images/load1.png new file mode 100644 index 0000000000000000000000000000000000000000..eea26a75481db3c777d36f7aa829fa6ffbda1b00 GIT binary patch literal 4454 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 literal 0 HcmV?d00001 diff --git a/src/images/load2.png b/src/images/load2.png new file mode 100755 index 0000000000000000000000000000000000000000..43ea4d46f23f3fa2e11076d3969b0cf339c15457 GIT binary patch literal 10011 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 literal 0 HcmV?d00001 diff --git a/src/index.html b/src/index.html index 0470dd9..e0a1a5f 100644 --- a/src/index.html +++ b/src/index.html @@ -163,6 +163,16 @@ + +
+
+ + + + {{progress}}% +
+
+ diff --git a/src/js/app.js b/src/js/app.js index 3b44376..6d16434 100644 --- a/src/js/app.js +++ b/src/js/app.js @@ -81,7 +81,6 @@ const LRC_WIN = new remote.BrowserWindow({ hasShadow: false, thickFrame: false, transparent: true, - // focusable: false, show: false }) @@ -109,7 +108,9 @@ Anot({ duration: 0 }, ctrlLrc: '暂无歌词...', - ...KTV.data + ...KTV.data, + loading: false, + progress: 0 }, skip: [], computed: { diff --git a/src/js/modules/ktv.js b/src/js/modules/ktv.js index f366212..9c952d0 100644 --- a/src/js/modules/ktv.js +++ b/src/js/modules/ktv.js @@ -70,7 +70,6 @@ export default { hash: it.FileHash } }) - log(list, this.lrcForm.result) }) } }, diff --git a/src/js/modules/local.js b/src/js/modules/local.js index 4f91af5..bfe9b4e 100644 --- a/src/js/modules/local.js +++ b/src/js/modules/local.js @@ -129,35 +129,38 @@ export default Anot({ __checkSong__(el) { let song = this.__LIST__.pop() + let scaned = this.__WAIT_FOR_SCAN__ - this.__LIST__.length + this.__APP__.progress = ((100 * scaned) / this.__WAIT_FOR_SCAN__) >>> 0 + if (!song) { el.textContent = '重新扫描' el = null - if (this.__NEW_NUM__ > 0) { - LS.sort('artist', true) - dbCache = LS.getAll() - this.list.clear() - this.list.pushArray(dbCache) - SONIST.clear() - SONIST.push(dbCache) + LS.sort('artist', true) + dbCache = LS.getAll() + this.list.clear() + this.list.pushArray(dbCache) - fs.echo(JSON.stringify(dbCache, '', 2), MUSIC_DB_PATH) - dbCache = null - } + SONIST.clear() + SONIST.push(dbCache) + + fs.echo(JSON.stringify(dbCache, '', 2), MUSIC_DB_PATH) + dbCache = null - layer.close(this.__load__) layer.toast(`刷新缓存完成,新增${this.__NEW_NUM__}首`) - delete this.__load__ + + this.__APP__.loading = false + this.__APP__.progress = 0 + delete this.__NEW_NUM__ return } Anot.nextTick(() => { - let name = path.basename(song) - if (name.startsWith('.')) { - return this.__checkSong__(el) - } let hash = crypto.md5Sign(song) - if (LS.get(hash)) { + let item = LS.get(hash) + if (item) { + item.path = `file://${song}` + LS.update(hash, item) return this.__checkSong__(el) } this.__NEW_NUM__++ @@ -175,25 +178,25 @@ export default Anot({ }) }, refresh(ev) { - if (this.__load__) { + if (this.__APP__.loading) { return } if (appInit.musicPath) { if (fs.isdir(appInit.musicPath)) { - this.__load__ = layer.load(4) + this.__APP__.loading = true this.__LIST__ = fs.ls(appInit.musicPath, true).filter(_ => { if (fs.isdir(_)) { return false } else { - let { ext, name } = path.parse(song) + let { ext, name } = path.parse(_) if (!ext || name.startsWith('.')) { return false } return SUPPORTED_EXTS.includes(ext) } }) - + this.__WAIT_FOR_SCAN__ = this.__LIST__.length this.__NEW_NUM__ = 0 ev.target.textContent = '正在扫描, 请稍候...' this.__checkSong__(ev.target) @@ -204,6 +207,11 @@ export default Anot({ layer.toast('请先设置音乐目录', 'error') } }, + closeEditByEnter(ev) { + if (ev.keyCode === 13 && ev.ctrlKey) { + this.closeEdit() + } + }, closeEdit() { this.editMode = false let song = this.list[this.__idx__].$model diff --git a/src/lib/audio/index.js b/src/lib/audio/index.js index 088aae2..bebbc3b 100644 --- a/src/lib/audio/index.js +++ b/src/lib/audio/index.js @@ -199,7 +199,7 @@ export const ID3 = song => { title: format.tags.TITLE || format.tags.title || name, album: format.tags.ALBUM || format.tags.album || '', artist: format.tags.ARTIST || format.tags.artist || '', - duration: +format.duration, + duration: Math.ceil(format.duration), size: +(format.size / 1024 / 1024).toFixed(2) }) } catch (err) { diff --git a/src/lib/lyrics/index.js b/src/lib/lyrics/index.js index 6487659..a92b9c0 100644 --- a/src/lib/lyrics/index.js +++ b/src/lib/lyrics/index.js @@ -128,6 +128,9 @@ class Lyrics { if (!this.curr.length && this.tmpLib.length) { this.curr = this.tmpLib.splice(0, 2) } + if (this.curr.length < 2) { + this.curr.push(this.curr[0]) + } let stat = 0 // 当前时间小于第1句的结束时间 diff --git a/src/main.js b/src/main.js index 154657f..6be9268 100644 --- a/src/main.js +++ b/src/main.js @@ -57,6 +57,18 @@ const TRAYMENU_TMPL = [ } ] const MENUBAR_TMPL = [ + { + label: 'Edit', + submenu: [ + { role: 'undo' }, + { role: 'redo' }, + { type: 'separator' }, + { role: 'cut' }, + { role: 'copy' }, + { role: 'paste' }, + { role: 'selectall' } + ] + }, { label: 'View', submenu: [{ role: 'zoomin' }, { role: 'zoomout' }] @@ -74,7 +86,7 @@ if (process.platform === 'darwin') { }) // Window menu - MENUBAR_TMPL[2].submenu = [{ role: 'minimize' }] + MENUBAR_TMPL[3].submenu = [{ role: 'minimize' }] } let traymenuList = Menu.buildFromTemplate(TRAYMENU_TMPL) diff --git a/src/views/local.htm b/src/views/local.htm index 6d26524..bef8c13 100644 --- a/src/views/local.htm +++ b/src/views/local.htm @@ -31,7 +31,7 @@
-
+
歌曲信息编辑 @@ -58,4 +58,5 @@
+