- MicActivator: 支持 restart/setPreferredDevice(API26), 输入路由切换后重建占用 - MainActivity: AudioDeviceCallback(API23+)/HEADSET广播监听, USB/外接麦插入后 自动重建 AudioRecord 跟随当前输入设备 - 麦克风音量标准Android无输入增益API: 远程界面滑杆禁用并提示'由功放/混音器 硬件调节', 本地调音台+/−按钮同样提示, 避免假调节无效果
19 lines
15 KiB
CSS
19 lines
15 KiB
CSS
:root{color-scheme:dark;--gold:#ffd56a;--gold2:#ffb23f;--violet:#9c4dff;--magenta:#ec5acc;--bg:#10031f;--glass:rgba(255,255,255,.075);--glass2:rgba(255,255,255,.115);--line:rgba(255,255,255,.12);--muted:#b9a9c9;--green:#62e6a5;--danger:#ff769a}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{background:#10031f}body{margin:0;min-height:100vh;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;background:linear-gradient(155deg,#260943 0,#10031f 56%,#080110 100%);overflow-x:hidden}button,input{font:inherit}button{border:0;color:inherit;cursor:pointer}.aurora{position:fixed;border-radius:50%;filter:blur(70px);opacity:.48;pointer-events:none}.aurora-one{width:280px;height:280px;background:#7d20d7;right:-110px;top:-80px}.aurora-two{width:260px;height:260px;background:#d82c9e;left:-150px;bottom:80px;opacity:.23}.mesh{position:fixed;inset:0;pointer-events:none;opacity:.22;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(to bottom,#000,transparent 80%)}.app-shell{position:relative;z-index:1;width:min(100%,520px);margin:auto;min-height:100vh;padding:env(safe-area-inset-top) 0 calc(92px + env(safe-area-inset-bottom))}.topbar{height:94px;padding:18px 20px 12px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px}.brand-mark{position:relative;width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,#fff2aa,#ffba44);box-shadow:0 8px 25px rgba(255,190,65,.25);display:flex;align-items:end;justify-content:center;gap:3px;padding:10px}.brand-mark i{display:block;width:4px;border-radius:3px;background:#6a2383}.brand-mark i:nth-child(1){height:12px}.brand-mark i:nth-child(2){height:22px}.brand-mark i:nth-child(3){height:16px}.brand h1{margin:0;font-size:21px;letter-spacing:.5px}.brand h1 em{font-style:italic;color:var(--gold);font-size:15px}.brand p{margin:5px 0 0;color:#c9b9d6;font-size:11px}.brand p span{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 9px var(--green);margin-right:5px}.queue-badge{display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,rgba(255,213,106,.16),rgba(255,165,55,.06));border:1px solid rgba(255,213,106,.2);padding:8px 11px;border-radius:16px}.queue-badge b{min-width:24px;height:24px;padding:0 5px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(135deg,var(--gold),var(--gold2));color:#431440;font-size:12px}.queue-badge span{color:#f7dfaa;font-size:11px}.page{display:none;padding:8px 18px 22px;animation:fadeUp .25s ease}.page.active{display:block}@keyframes fadeUp{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}.hero-card{position:relative;display:flex;align-items:center;gap:18px;min-height:150px;padding:22px;overflow:hidden;border-radius:28px;background:linear-gradient(135deg,rgba(141,49,218,.64),rgba(95,28,147,.42) 56%,rgba(240,78,177,.23));border:1px solid rgba(255,255,255,.16);box-shadow:0 20px 50px rgba(3,0,12,.28),inset 0 1px rgba(255,255,255,.12)}.hero-glow{position:absolute;width:160px;height:160px;border-radius:50%;background:#f058bd;filter:blur(60px);right:-70px;top:-80px;opacity:.42}.album{position:relative;flex:0 0 94px;width:94px;height:94px;border-radius:23px;background:linear-gradient(145deg,#f1a059,#ce3ac1 48%,#6532c8);padding:7px;box-shadow:0 12px 30px rgba(20,0,35,.4)}.disc{height:100%;border-radius:18px;display:grid;place-items:center;background:repeating-radial-gradient(circle,#1d0e2b 0 4px,#2b143b 5px 8px)}.disc:after{content:"";position:absolute;width:24px;height:24px;border-radius:50%;background:linear-gradient(145deg,var(--gold),#e977ad)}.disc span{font-size:24px;color:white;z-index:2}.hero-copy{position:relative;min-width:0;flex:1}.eyebrow{font-size:11px;color:#eadff3;letter-spacing:1px}.playing-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green);margin-right:6px}.hero-copy h2{font-size:25px;margin:10px 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero-copy p{margin:0;color:#d6c3e4;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sound-wave{display:flex;align-items:end;gap:3px;height:16px;margin-top:14px}.sound-wave i{width:3px;border-radius:3px;background:linear-gradient(to top,var(--gold2),#fff1a2);animation:wave .9s ease-in-out infinite alternate}.sound-wave i:nth-child(1),.sound-wave i:nth-child(5){height:5px}.sound-wave i:nth-child(2),.sound-wave i:nth-child(6){height:10px;animation-delay:.2s}.sound-wave i:nth-child(3){height:15px;animation-delay:.4s}.sound-wave i:nth-child(4),.sound-wave i:nth-child(7){height:8px;animation-delay:.1s}@keyframes wave{to{height:4px}}.controls{display:grid;grid-template-columns:1fr 1.18fr 1fr;align-items:center;gap:14px;padding:23px 8px 19px}.controls button{height:72px;border-radius:23px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.09);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#dcd0e7;box-shadow:inset 0 1px rgba(255,255,255,.05)}.controls .control-icon{font-size:23px;line-height:24px;font-weight:300}.controls button>span:last-child{font-size:11px;margin-top:7px}.controls .primary{height:82px;border-radius:27px;background:linear-gradient(145deg,#b551ff,#7028d8);color:#fff;box-shadow:0 13px 30px rgba(119,35,219,.4),inset 0 1px rgba(255,255,255,.25)}.glass-card{background:linear-gradient(145deg,rgba(255,255,255,.105),rgba(255,255,255,.05));border:1px solid var(--line);border-radius:24px;box-shadow:inset 0 1px rgba(255,255,255,.08)}.audio-panel{padding:18px}.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.panel-title>div{display:flex;gap:9px;align-items:center}.panel-title b{font-size:15px}.panel-title small{color:#9f8eb0;font-size:10px}.tiny-icon{color:var(--gold);font-size:17px}.seg{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px;background:rgba(9,1,18,.38);border:1px solid rgba(255,255,255,.05);border-radius:17px}.seg button{height:46px;border-radius:13px;background:transparent;color:#a898b7}.seg button span{display:inline-grid;place-items:center;width:24px;height:24px;margin-right:7px;border-radius:8px;background:rgba(255,255,255,.08);font-size:11px}.seg button.active{color:#36123d;background:linear-gradient(135deg,#ffdf7f,#ffb84a);font-weight:700;box-shadow:0 7px 18px rgba(255,184,74,.18)}.seg button.active span{background:rgba(62,13,57,.13)}.audio-panel label{display:grid;grid-template-columns:1fr auto;align-items:center;margin-top:19px;font-size:13px;color:#e9dfef}.audio-panel label>span{display:flex;align-items:center}.audio-panel label>b{color:var(--gold);font-size:12px}.audio-panel label b em{font-style:normal;font-size:15px}.volume-icon{display:inline-grid;place-items:center;width:27px;height:27px;margin-right:9px;border-radius:9px;background:rgba(168,77,255,.16);color:#ca8cff;font-style:normal}.volume-icon.mic{font-size:8px;color:#ff82cc}input[type=range]{grid-column:1/3;width:100%;height:4px;margin:15px 0 2px;appearance:none;border-radius:8px;background:linear-gradient(90deg,#a649f3,#e457c1);accent-color:var(--gold)}input[type=range]::-webkit-slider-thumb{appearance:none;width:19px;height:19px;border-radius:50%;background:#fff;border:5px solid var(--gold);box-shadow:0 3px 10px rgba(0,0,0,.35)}.next-card{display:flex;align-items:center;gap:12px;padding:15px 16px;margin-top:14px;border-radius:19px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08)}.next-number{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:rgba(255,213,106,.12);color:var(--gold);font-size:11px}.next-card>div:nth-child(2){min-width:0;flex:1}.next-card small{display:block;color:#9885a8;font-size:10px;margin-bottom:4px}.next-card b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.next-card button{background:transparent;color:var(--gold);font-size:11px}.next-card button span{font-size:17px;margin-left:3px}.page-heading{display:flex;align-items:end;justify-content:space-between;padding:7px 2px 18px}.page-heading p{margin:0 0 5px;color:#a378c7;letter-spacing:2px;font-size:9px}.page-heading h2{font-size:25px;margin:0}.page-heading>span{color:#a898b7;font-size:11px}.search-box{display:flex;align-items:center;gap:7px;height:58px;padding:6px 6px 6px 16px;border-radius:19px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.13);box-shadow:0 12px 28px rgba(0,0,0,.13)}.search-icon{width:16px;height:16px;border:2px solid #bfa9cf;border-radius:50%;position:relative}.search-icon:after{content:"";position:absolute;width:7px;height:2px;background:#bfa9cf;right:-5px;bottom:-3px;transform:rotate(45deg);border-radius:2px}.search-box input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:white;font-size:14px}.search-box input::placeholder{color:#9484a4}.search-box button,.more{height:45px;padding:0 20px;border-radius:14px;background:linear-gradient(135deg,#a74df5,#7130d5);font-weight:700;box-shadow:0 7px 17px rgba(120,45,210,.25)}.hot-block{margin-top:25px}.block-title{display:flex;align-items:center;justify-content:space-between}.block-title h3{font-size:16px;margin:0}.block-title span{font-size:10px;color:#907e9f}.chips{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.chips button{height:51px;padding:0 14px;text-align:left;border-radius:16px;background:linear-gradient(135deg,rgba(255,255,255,.085),rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.08);color:#e7dcec}.chips button b{display:inline-block;margin-right:10px;color:#c17af6;font-size:10px}.list{margin-top:15px}.song{display:flex;align-items:center;gap:12px;min-height:70px;padding:11px 10px;margin-bottom:9px;border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.085),rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.085)}.song-index{flex:0 0 37px;width:37px;height:37px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(156,77,255,.25),rgba(236,90,204,.13));color:#c991f3;font-size:11px}.song .info{flex:1;min-width:0}.song .info b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song .info p{margin:5px 0 0;color:#9e8cad;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song .playing{display:inline-block;margin-bottom:5px;padding:3px 7px;border-radius:8px;color:#6ff0ac;background:rgba(76,225,150,.1);font-size:9px}.song button{height:38px;padding:0 13px;border-radius:12px;font-size:11px}.song .order,.song .top{background:linear-gradient(135deg,rgba(255,213,106,.2),rgba(255,176,57,.1));border:1px solid rgba(255,213,106,.2);color:var(--gold)}.song .order:disabled{color:var(--green);background:rgba(98,230,165,.1);border-color:rgba(98,230,165,.15)}.song .delete{width:38px;padding:0;background:rgba(255,118,154,.1);color:var(--danger)}.queue-tip{padding:11px 13px;border-radius:14px;background:rgba(255,213,106,.07);color:#c9b687;font-size:10px}.queue-tip span{display:inline-grid;place-items:center;width:18px;height:18px;margin-right:7px;border-radius:50%;background:rgba(255,213,106,.14);color:var(--gold)}.more{width:100%;margin:17px 0;color:#fff;border:0}.empty{padding:80px 15px;text-align:center;color:#927fa2}.empty:before{content:"♫";display:grid;place-items:center;width:58px;height:58px;margin:0 auto 14px;border-radius:19px;background:rgba(255,255,255,.06);color:#a970d3;font-size:25px}.hidden{display:none!important}nav{position:fixed;z-index:8;left:50%;bottom:0;transform:translateX(-50%);width:min(100%,520px);height:78px;padding:5px 15px env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(3,1fr);background:rgba(14,3,27,.9);backdrop-filter:blur(22px);border-top:1px solid rgba(255,255,255,.09)}nav button{position:relative;background:transparent;color:#887897;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-size:10px}nav button.active{color:var(--gold)}nav i{display:block;position:relative;width:21px;height:21px}.nav-remote:before{content:"";position:absolute;inset:2px 4px;border:2px solid currentColor;border-radius:6px}.nav-remote:after{content:"";position:absolute;width:4px;height:4px;border-radius:50%;background:currentColor;left:9px;top:8px}.nav-search{border:2px solid currentColor;border-radius:50%;width:16px;height:16px;margin-bottom:5px}.nav-search:after{content:"";position:absolute;width:8px;height:2px;background:currentColor;right:-6px;bottom:-4px;transform:rotate(45deg)}.nav-queue:before{content:"";position:absolute;inset:3px 2px;border-top:2px solid currentColor;border-bottom:2px solid currentColor;box-shadow:0 5px 0 -3px currentColor}.nav-queue:after{content:"";position:absolute;width:3px;height:3px;left:-3px;top:2px;background:currentColor;box-shadow:0 7px currentColor,0 14px currentColor}nav button>b{position:absolute;top:3px;left:calc(50% + 8px);min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#ed4f86;color:#fff;font-size:9px;display:grid;place-items:center}.offline{position:fixed;z-index:20;top:0;left:0;right:0;padding:9px;background:rgba(190,43,86,.96);text-align:center;font-size:11px}.offline span{display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:#fff}#toast{position:fixed;z-index:30;left:50%;bottom:93px;transform:translateX(-50%) translateY(18px);padding:11px 18px;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(38,13,55,.96);box-shadow:0 12px 30px rgba(0,0,0,.3);opacity:0;transition:.22s;white-space:nowrap;font-size:12px}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}@media(max-width:360px){.topbar{padding-left:15px;padding-right:15px}.page{padding-left:14px;padding-right:14px}.hero-card{padding:17px}.album{flex-basis:78px;width:78px;height:78px}.hero-copy h2{font-size:21px}.controls{gap:9px}.song{gap:8px}.song button{padding:0 9px}}
|
|
|
|
/* Mobile song search and hot-ranking additions. */
|
|
.search-mode{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:10px;padding:5px;border-radius:16px;background:rgba(9,1,18,.38);border:1px solid rgba(255,255,255,.06)}
|
|
.search-mode button{height:40px;border-radius:12px;background:transparent;color:#a898b7;font-size:13px;font-weight:700}
|
|
.search-mode button.active{color:#35123d;background:linear-gradient(135deg,#ffdf7f,#ffb84a);box-shadow:0 7px 18px rgba(255,184,74,.18)}
|
|
.search-result-block{margin-top:24px}
|
|
.search-result-block .list{margin-top:12px}
|
|
.hot-block{padding-top:22px;margin-top:25px;border-top:1px solid rgba(255,255,255,.1)}
|
|
.ranking-list .song-index{font-weight:800}
|
|
.ranking-list .song.podium .song-index{color:#4b183e;background:linear-gradient(135deg,#ffe48c,#ffae48)}
|
|
.rank-pager{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin-top:16px}
|
|
.rank-pager button{height:43px;border-radius:14px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.11);color:#f0e6f6;font-size:12px;font-weight:700}
|
|
.rank-pager button:last-child{background:linear-gradient(135deg,#a74df5,#7130d5)}
|
|
.rank-pager button:disabled{opacity:.35;box-shadow:none}
|
|
.rank-pager b{min-width:64px;text-align:center;color:#b9a9c9;font-size:11px}
|
|
.empty.compact{padding:42px 15px}
|
|
|
|
.audio-panel label.mic-hw{opacity:.55}.audio-panel label.mic-hw>small{grid-column:1/3;color:#9f8eb0;font-size:10px;margin-top:2px}.audio-panel label.mic-hw input[type=range]{background:rgba(255,255,255,.14)} |