Files
maidong-ktv/app/src/main/assets/mobile/index.html
T
zijunchiang 4eb6b7b382 V1.3.3: 移除点击时的纯色遮罩层 + App 音量默认值改为 85%
1) 纯色遮罩层: TvFocusStyler.install() 会把背景整体换成不透明的红→橙渐变作为
   焦点/按下反馈, 而 prepareTvFocusableTree(window.decorView) 会遍历整棵树施加。
   按钮/Tab/卡片需要该反馈, 但铺满屏幕或覆盖播放画面的「表面型」View 一旦被套上,
   触摸一次(state_pressed)就会用纯色盖住整屏内容。
   新增 TvFocusStyler.suppressFill(view, focusable) 显式排除:
   - 播放触摸层 playerTouchOverlay(浮在播放画面上方, 主要元凶; 传 focusable=false
     保持其 isFocusable=false, 不再抢遥控器焦点)
   - 全屏播放容器 R.id.container、启动加载遮罩 databaseLoadingOverlay
   - 手机点歌二维码浮层(首页右下 + 全屏右上)、全屏音量面板
   - 原 preserveBackground 更名为 suppressFill(播放画面宿主/海报沿用)
   同时 install() 对已标记的 View 直接跳过, 不再替调用方强制可聚焦。

2) App 音量默认 85%: 新增 KtvStore.DEFAULT_MUSIC_VOLUME 作为唯一来源,
   KtvStore 字段默认值与 optInt 兜底、MainActivity.musicVolume 初值、
   调音弹窗「默认」按钮(原 80)统一引用; 远程页面 assets/mobile 默认值同步为 85。

版本号 1.3.2 -> 1.3.3(versionCode 8 -> 9)。按约定本次不发布 Release, 仅本地打包测试。
2026-09-14 03:37:17 +08:00

76 lines
4.9 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover">
<meta name="theme-color" content="#17052f">
<title>麦动 KTV 手机点歌</title>
<link rel="stylesheet" href="/mobile/app.css">
<link rel="stylesheet" href="/mobile/logo.css">
</head>
<body>
<div class="aurora aurora-one"></div><div class="aurora aurora-two"></div><div class="mesh"></div>
<div id="offline" class="offline hidden"><span></span>连接中断,正在重新连接…</div>
<div class="app-shell">
<header class="topbar">
<div class="brand">
<div class="brand-mark"><img src="/res/drawable-nodpi/ktv_logo.png" alt="麦动 KTV"></div>
<div><h1>麦动 <em>KTV</em></h1><p id="connection"><span></span>正在连接麦动 KTV…</p></div>
</div>
<button id="queueBadge" class="queue-badge" data-page="queue"><b>0</b><span>已点歌曲</span></button>
</header>
<main>
<section id="remote" class="page active">
<article class="hero-card">
<div class="hero-glow"></div><div class="album"><div class="disc"><span>♪</span></div></div>
<div class="hero-copy"><div class="eyebrow"><span class="playing-dot"></span>正在播放</div><h2 id="nowTitle">暂无歌曲</h2><p id="nowSinger">请先点一首喜欢的歌</p><div class="sound-wave"><i></i><i></i><i></i><i></i><i></i><i></i><i></i></div></div>
</article>
<div class="controls">
<button data-action="replay"><span class="control-icon">↻</span><span>重唱</span></button>
<button id="playButton" class="primary" data-action="pause"><span class="control-icon">Ⅱ</span><span>暂停</span></button>
<button data-action="next"><span class="control-icon">›|</span><span>切歌</span></button>
</div>
<article class="glass-card audio-panel">
<div class="panel-title"><div><span class="tiny-icon">♪</span><b>声音控制</b></div><small>即时生效</small></div>
<div class="seg"><button id="accompany" data-vocal="accompany"><span>伴</span>伴唱</button><button id="original" data-vocal="original"><span>原</span>原唱</button></div>
<label><span><i class="volume-icon">♪</i>音乐音量</span><b><em id="musicValue">85</em>%</b><input id="musicVolume" type="range" min="0" max="100" value="85"></label>
<label class="mic-hw"><span><i class="volume-icon mic">●</i>麦克风音量</span><small>由功放/混音器硬件调节</small><input id="micVolume" type="range" min="0" max="100" value="70" disabled></label>
</article>
<article class="next-card"><div class="next-number">02</div><div><small>下一首</small><b id="nextSong">队列为空</b></div><button data-page="queue">查看队列 <span>›</span></button></article>
</section>
<section id="search" class="page">
<div class="page-heading"><div><p>SONG LIBRARY</p><h2>想唱什么?</h2></div><span>海量本地曲库</span></div>
<div class="search-mode" role="group" aria-label="搜索方式">
<button type="button" data-search-mode="singer" class="active">歌手</button>
<button type="button" data-search-mode="song">歌曲</button>
</div>
<form id="searchForm" class="search-box"><span class="search-icon"></span><input id="query" autocomplete="off" placeholder="输入歌手名或拼音"><button type="submit">搜索</button></form>
<div id="searchResultBlock" class="search-result-block hidden">
<div class="block-title"><h3 id="resultTitle">歌手搜索结果</h3><span id="resultSummary"></span></div>
<div id="results" class="list"></div><button id="more" class="more hidden">加载更多歌曲</button>
</div>
<div id="hot" class="hot-block">
<div class="block-title"><h3>热歌排行</h3><span id="hotSummary">正在加载…</span></div>
<div id="hotList" class="list ranking-list"></div>
<div class="rank-pager"><button id="hotPrev" type="button">上一页</button><b id="hotPage">第 1 页</b><button id="hotNext" type="button">下一页</button></div>
</div>
</section>
<section id="queue" class="page">
<div class="page-heading queue-heading"><div><p>PLAY QUEUE</p><h2>已点歌单</h2></div><span id="queueCount">0 首</span></div>
<div class="queue-tip"><span>i</span>置顶歌曲将排在当前歌曲之后</div><div id="queueList" class="list"></div>
</section>
</main>
<nav><button data-page="remote" class="active"><i class="nav-remote"></i><span>遥控</span></button><button data-page="search"><i class="nav-search"></i><span>搜歌</span></button><button data-page="queue"><i class="nav-queue"></i><span>已点</span><b id="navCount" class="hidden">0</b></button></nav>
</div>
<div id="toast"></div>
<script src="/mobile/app.js"></script>
</body>
</html>