diff --git a/app/src/main/java/com/theveloper/pixelplay/presentation/components/RoundedParallaxCarousell.kt b/app/src/main/java/com/theveloper/pixelplay/presentation/components/RoundedParallaxCarousell.kt index 0863c6d8c..92445df96 100644 --- a/app/src/main/java/com/theveloper/pixelplay/presentation/components/RoundedParallaxCarousell.kt +++ b/app/src/main/java/com/theveloper/pixelplay/presentation/components/RoundedParallaxCarousell.kt @@ -289,7 +289,7 @@ private fun RoundedCarousel( ): Outline { // 1) Limitar la máscara al tamaño del layer (item) val layerBounds = Rect(0f, 0f, size.width, size.height) - // intersecta con bounds y da un respiro sub-px para que no se vea “cortado” + // intersecta con bounds y da un respiro sub-px para que no se vea 「cortado」 val rect = carouselItemInfo.maskRect.intersect(layerBounds).inflate(0.5f) // 2) Creamos un outline redondeado del tamaño del rect ya intersectado @@ -831,7 +831,7 @@ private data class Arrangement( fun itemCount() = smallCount + mediumCount + largeCount companion object { - /** Búsqueda simple: prueba combinaciones y escoge la que mejor llena el espacio con menor “coste”. */ + /** Búsqueda simple: prueba combinaciones y escoge la que mejor llena el espacio con menor 「coste」. */ fun findLowestCostArrangement( availableSpace: Float, itemSpacing: Float, diff --git a/app/src/main/java/com/theveloper/pixelplay/presentation/components/subcomps/LibraryActionRow.kt b/app/src/main/java/com/theveloper/pixelplay/presentation/components/subcomps/LibraryActionRow.kt index 585bb7fc1..7771d3bcb 100644 --- a/app/src/main/java/com/theveloper/pixelplay/presentation/components/subcomps/LibraryActionRow.kt +++ b/app/src/main/java/com/theveloper/pixelplay/presentation/components/subcomps/LibraryActionRow.kt @@ -204,7 +204,7 @@ fun LibraryActionRow( visible = shouldShowImport, enter = fadeIn() + expandHorizontally( expandFrom = Alignment.Start, - clip = false, // <— evita el “corte” durante la expansión + clip = false, // <— evita el 「corte」 durante la expansión animationSpec = spring( dampingRatio = Spring.DampingRatioMediumBouncy, stiffness = Spring.StiffnessLow @@ -212,7 +212,7 @@ fun LibraryActionRow( ), exit = fadeOut() + shrinkHorizontally( shrinkTowards = Alignment.Start, - clip = false, // <— evita el “corte” durante la expansión + clip = false, // <— evita el 「corte」 durante la expansión animationSpec = spring( dampingRatio = Spring.DampingRatioNoBouncy, stiffness = Spring.StiffnessMedium diff --git a/app/src/main/java/com/theveloper/pixelplay/presentation/components/subcomps/PlayingEqIcon.kt b/app/src/main/java/com/theveloper/pixelplay/presentation/components/subcomps/PlayingEqIcon.kt index 8904f11c8..0dc634501 100644 --- a/app/src/main/java/com/theveloper/pixelplay/presentation/components/subcomps/PlayingEqIcon.kt +++ b/app/src/main/java/com/theveloper/pixelplay/presentation/components/subcomps/PlayingEqIcon.kt @@ -86,7 +86,7 @@ fun PlayingEqIcon( val corner = CornerRadius(barW / 2f, barW / 2f) repeat(bars) { i -> - // “Respiración” lenta para que el patrón dure más + // 「Respiración」 lenta para que el patrón dure más val slowShift = 0.6f * sin(wander + i * 0.4f) val slowAmp = 0.85f + 0.15f * sin(wander * 0.5f + 1.1f + i * 0.3f) @@ -96,11 +96,11 @@ fun PlayingEqIcon( // Suavizado tipo smoothstep val eased = v * v * (3 - 2 * v) - // Altura “viva” (modo barras) + // Altura 「viva」 (modo barras) val fracBars = minHeightFraction + (maxHeightFraction - minHeightFraction) * eased val barH = h * fracBars - // Altura “punto” (círculo → alto = ancho) + // Altura 「punto」 (círculo → alto = ancho) val dotH = barW // Morph: puntito ⇄ barra (sin importar el frame) diff --git a/app/src/main/java/com/theveloper/pixelplay/presentation/screens/search/components/GenreiconProvider.kt b/app/src/main/java/com/theveloper/pixelplay/presentation/screens/search/components/GenreiconProvider.kt index e50ccd20b..aac08f804 100644 --- a/app/src/main/java/com/theveloper/pixelplay/presentation/screens/search/components/GenreiconProvider.kt +++ b/app/src/main/java/com/theveloper/pixelplay/presentation/screens/search/components/GenreiconProvider.kt @@ -36,7 +36,7 @@ private fun splitGenreParts(normalized: String): List { private fun keywordFallback(key: String): Int? { // Orden: específico -> general return when { - // --- “Catch-all” / colecciones / charts --- + // --- 「Catch-all」 / colecciones / charts --- "international" in key && ("hit" in key || "top" in key) -> R.drawable.pop_mic "hit" in key || "hits" in key || "top " in key || "charts" in key || "chart" in key || "top50" in key || "top 50" in key -> R.drawable.pop_mic @@ -111,7 +111,7 @@ private fun normalizeGenreKey(input: String): String { .replace("—", "-") s = s.replace("[()\\[\\]{}]".toRegex(), " ") - .replace("[.:!؟?\"“”]".toRegex(), " ") + .replace("[.:!؟?\"\u201C\u201D\u300C\u300D]".toRegex(), " ") .replace("\\s+".toRegex(), " ") .trim() @@ -247,7 +247,7 @@ private object GenreMapBuilder { putAll(R.drawable.harmonica, "blues", "delta blues", "chicago blues", "electric blues") putAll(R.drawable.maracas, "reggae", "ska", "dancehall", "dub") - // --------- LATIN / WORLD / “INTERNATIONAL” --------- + // --------- LATIN / WORLD / 「INTERNATIONAL」 --------- putAll(R.drawable.star_angle, "latin", "latino", "latin pop", "urbano latino", "latin urban", "world", "world music", "international", "international music", diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index cb677f735..1270bebe5 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -83,7 +83,7 @@ 未找到播放列表。 碟片 %d - 请在“设置”中为所选 AI 提供商配置有效的 API 密钥。 + 请在「设置」中为所选 AI 提供商配置有效的 API 密钥。 AI 错误:%s 所选 AI 提供商拒绝了该请求,因为账户没有余额或可用配额。 所选 AI 模型已不可用。PixelPlayer 已尝试自动切换到受支持的模型。 @@ -125,7 +125,7 @@ 没有可导出的播放列表 导出失败:%1$s Music/PixelPlayer Exports - 请在“设置”中配置你的 Gemini API 密钥。 + 请在「设置」中配置你的 Gemini API 密钥。 未知错误 @@ -153,6 +153,7 @@ 正在投放到设备 正在向 Cast 设备提供媒体内容 %1$s:%2$s + 为避免投放进程崩溃,暂不支持调整此音频格式的播放进度。 无效备份:%1$s @@ -210,8 +211,8 @@ 曲目结束时 已设置 %1$d 分钟后停止。 定时器已取消。 - 无法启用“曲目结束时”:当前没有活动歌曲。 - “曲目结束时”定时器已停用:歌曲已从 %1$s 切换为 %2$s。 + 无法启用「曲目结束时」:当前没有活动歌曲。 + 「曲目结束时」定时器已停用:歌曲已从 %1$s 切换为 %2$s。 播放将在曲目结束时停止。 上一曲 当前曲目 diff --git a/app/src/main/res/values-zh-rCN/strings_auth.xml b/app/src/main/res/values-zh-rCN/strings_auth.xml index 9b4291338..3b0961ed7 100644 --- a/app/src/main/res/values-zh-rCN/strings_auth.xml +++ b/app/src/main/res/values-zh-rCN/strings_auth.xml @@ -23,6 +23,7 @@ 使用服务器完整的 https:// 基础地址。 这是你的 Subsonic 或 Navidrome 账户名。 如果服务器支持,也可以使用应用密码。 + 如果你的服务器支持,也可以使用应用密码。 预填充 https:// 兼容 Navidrome、Gonic、Airsonic 及其他 Subsonic 兼容服务器 Navidrome diff --git a/app/src/main/res/values-zh-rCN/strings_components.xml b/app/src/main/res/values-zh-rCN/strings_components.xml index 946666f05..1fca8ea94 100644 --- a/app/src/main/res/values-zh-rCN/strings_components.xml +++ b/app/src/main/res/values-zh-rCN/strings_components.xml @@ -23,7 +23,7 @@ 显示罗马音 显示翻译 关闭沉浸模式(仅本次) - Keep screen on + 保持屏幕开启 歌词左对齐 歌词居中对齐 歌词右对齐 @@ -51,7 +51,9 @@ 标题 艺术家 专辑 + 专辑艺术家 流派 + 作曲 重试 应用更改 @@ -117,15 +119,15 @@ 闹钟声音 时钟闹钟 确认声音更改 - 将“%1$s”设为%2$s? + 将「%1$s」设为%2$s? 设置声音 - 已将“%1$s”设为%2$s + 已将「%1$s」设为%2$s 铃声 通知声音 闹钟声音 开启修改系统设置,然后返回 PixelPlayer 自动完成。 未开启修改系统设置。 - 已将“%1$s”设为铃声 + 已将「%1$s」设为铃声 只有本地歌曲可用作系统声音。 无法准备此音频文件。 无法更改声音:%1$s diff --git a/app/src/main/res/values-zh-rCN/strings_presentation_batch_a.xml b/app/src/main/res/values-zh-rCN/strings_presentation_batch_a.xml index 7c36fba47..2b101c2b2 100644 --- a/app/src/main/res/values-zh-rCN/strings_presentation_batch_a.xml +++ b/app/src/main/res/values-zh-rCN/strings_presentation_batch_a.xml @@ -13,7 +13,7 @@ 使用 Google 登录 选择音乐文件夹 选择或创建一个文件夹作为你的音乐来源 - 创建“PixelPlayer Music” + 创建「PixelPlayer Music」 在这里新建一个文件夹来存放你的音乐 这里没有文件夹 使用 diff --git a/app/src/main/res/values-zh-rCN/strings_presentation_batch_b.xml b/app/src/main/res/values-zh-rCN/strings_presentation_batch_b.xml index 049795dc5..93377cde1 100644 --- a/app/src/main/res/values-zh-rCN/strings_presentation_batch_b.xml +++ b/app/src/main/res/values-zh-rCN/strings_presentation_batch_b.xml @@ -30,7 +30,7 @@ 重新排序歌曲 这个播放列表为空。 这个文件夹中没有歌曲。 - 点击“添加歌曲”即可开始。 + 点击「添加歌曲」即可开始。 播放列表选项 编辑播放列表 删除播放列表 diff --git a/app/src/main/res/values-zh-rCN/strings_presentation_batch_c.xml b/app/src/main/res/values-zh-rCN/strings_presentation_batch_c.xml index 882229088..12c0dd43e 100644 --- a/app/src/main/res/values-zh-rCN/strings_presentation_batch_c.xml +++ b/app/src/main/res/values-zh-rCN/strings_presentation_batch_c.xml @@ -17,8 +17,8 @@ 导入 M3U 播放列表 定位当前歌曲 全部歌曲 - 在线 - 离线 + 云端 + 本地 排序选项 @@ -29,7 +29,8 @@ 添加歌曲 添加所选歌曲 添加 - 搜索歌曲…… + 搜索或筛选歌曲…… + 喜爱的歌曲 加载歌曲失败 加载更多 diff --git a/app/src/main/res/values-zh-rCN/strings_presentation_batch_e.xml b/app/src/main/res/values-zh-rCN/strings_presentation_batch_e.xml index d50b4c703..2fa2a9509 100644 --- a/app/src/main/res/values-zh-rCN/strings_presentation_batch_e.xml +++ b/app/src/main/res/values-zh-rCN/strings_presentation_batch_e.xml @@ -5,6 +5,7 @@ 队列操作 清空队列 保存为播放列表 + 定位当前曲目 %1$s 队列 当前队列 已移除 @@ -22,7 +23,7 @@ 搜索要包含的歌曲…… 保存为:%1$s 输入播放列表名称 - 没有歌曲匹配“%1$s” + 没有歌曲匹配「%1$s」 关闭歌曲 从播放列表中移除 %1$s 的更多选项 @@ -38,7 +39,7 @@ 尚未创建任何播放列表。 - 点击“新建播放列表”按钮开始创建。 + 点击「新建播放列表」按钮开始创建。 创建播放列表 diff --git a/app/src/main/res/values-zh-rCN/strings_presentation_batch_f.xml b/app/src/main/res/values-zh-rCN/strings_presentation_batch_f.xml index 8b1001242..6f4db7496 100644 --- a/app/src/main/res/values-zh-rCN/strings_presentation_batch_f.xml +++ b/app/src/main/res/values-zh-rCN/strings_presentation_batch_f.xml @@ -27,13 +27,13 @@ 输入系统提示词…… 重置 专业策展人 - 你是“Vibe-Engine”,世界级音乐策展人和声音流动大师。你的目标是构建无缝、高保真的聆听体验。优先考虑和声兼容性、合理的 BPM 过渡,以及在熟悉最爱与有品位、基于逻辑的发现之间取得精致平衡。 + 你是「Vibe-Engine」,世界级音乐策展人和声音流动大师。你的目标是构建无缝、高保真的聆听体验。优先考虑和声兼容性、合理的 BPM 过渡,以及在熟悉最爱与有品位、基于逻辑的发现之间取得精致平衡。 创意先锋 - 你是一位前卫音乐探索者,专注于“意料之外的协调感”。你的使命是通过识别不明显的声音相似性来打破传统流派边界。优先选择稀有冷门佳作、实验性音色与艺术新意,同时保持令人惊喜却无可否认的过渡逻辑。 + 你是一位前卫音乐探索者,专注于「意料之外的协调感」。你的使命是通过识别不明显的声音相似性来打破传统流派边界。优先选择稀有冷门佳作、实验性音色与艺术新意,同时保持令人惊喜却无可否认的过渡逻辑。 严谨馆员 你是一位手术刀般精准的音乐数据库架构师。你的判断建立在绝对精确的元数据和严格的分类遵循之上。尽量减少算法式发现,优先保持流派一致性、能量等级匹配,并最大化满足用户定义的高度具体偏好。 氛围向导 - 你是环境纹理与低能量流动的大师。只专注于能够营造“深度专注”或“宁静”状态的曲目。优先考虑原声音色的温暖感、极简编排和柔和过渡,同时严格避免高瞬态声音或动态范围的突然变化。 + 你是环境纹理与低能量流动的大师。只专注于能够营造「深度专注」或「宁静」状态的曲目。优先考虑原声音色的温暖感、极简编排和柔和过渡,同时严格避免高瞬态声音或动态范围的突然变化。 声音发烧友 你是一位专注于制作复杂度和乐器编制的音响分析师。优先选择具有高动态范围、复杂复节奏和优秀声场表现的曲目。偏好适合主动聆听的作品,让听众在关注技术保真度和编排细节时获得回报。 能量催化剂 @@ -52,8 +52,13 @@ 自动生成的拼贴 添加图片 选择图片 + 更改 + 移除 播放列表名称 - 我的超棒合辑 + 我的超赞合辑 + 编辑封面 + 调整你的封面图像 + 使用缩放和拖拽手势来寻找最佳构图效果 手动 智能 用 AI 生成 @@ -122,7 +127,7 @@ 在展开完成前延迟显示时间轴和时间标签。 播放控制 延迟显示播放/暂停、拖动和收藏控制。 - 所有延迟组件均已启用。关闭“全部延迟”后可分别自定义各部分。 + 所有延迟组件均已启用。关闭「全部延迟」后可分别自定义各部分。 第 2 步 · 配置占位符行为 为延迟项目使用占位符 在组件等待展开时渲染轻量占位符,以保持布局稳定。 @@ -169,7 +174,7 @@ 正在准备安全的 Telegram 会话…… 正在等待 Telegram 响应…… 连接 Telegram - 提供完善的错误处理、超时控制和可编辑步骤的登录流程。 + 连接到 Telegram,从你的频道和对话中串流播放歌曲。 手机号 输入你的 Telegram 手机号。之后仍可返回修改。 手机号 @@ -204,6 +209,9 @@ 获取此频道中的最新歌曲 移除频道 停止同步并移除缓存歌曲 + 移除频道? + %1$s 将停止同步,所有从该频道缓存的曲目也将被移除。 + 移除 尚未同步任何频道 添加公开的 Telegram 频道以同步\n你的音乐媒体库 添加频道 diff --git a/app/src/main/res/values-zh-rCN/strings_presentation_batch_g.xml b/app/src/main/res/values-zh-rCN/strings_presentation_batch_g.xml index a2be6c656..f06c15194 100644 --- a/app/src/main/res/values-zh-rCN/strings_presentation_batch_g.xml +++ b/app/src/main/res/values-zh-rCN/strings_presentation_batch_g.xml @@ -184,7 +184,7 @@ 关于多艺术家解析 PixelPlayer 会使用字符分隔符(/、;、&)和单词分隔符(feat.、ft.、vs.、x)拆分艺术家标签。单词分隔符匹配时不区分大小写。 -“从标题提取艺术家”会检测歌曲标题中类似(feat. Artist)的模式。 +「从标题提取艺术家」会检测歌曲标题中类似(feat. Artist)的模式。 反斜杠(\)可用于转义字符分隔符。 @@ -300,6 +300,7 @@ 请先搜索,查看是否已有特定话题的崩溃、请求和问题报告。 查看 GitHub 议题 报告问题或崩溃 + 分享复现步骤、预期结果、实际结果,以及你的设备、系统信息。 提交方法 开启新议题前的快速检查清单。 开启一个新的议题前 @@ -464,10 +465,113 @@ 亮点 改进 修复 - 新内容 + 更新日志 + 更新日志 新增 变更 修复 + + 新增 Android Auto 支持,可用于车载播放。 + Wear OS 支持已上线,包括更好的手表到手机播放控制。 + 云端集成进一步扩展,带来 Telegram、NetEase、QQ Music 和 Google Drive 改进。 + 最近播放与持久化队列恢复,让你的聆听会话随时可继续。 + 现已包含备份与恢复 v3 以及账户管理工具。 + 歌词功能更加智能,支持手动搜索兜底并改进了存储处理。 + + + 对启动、媒体库、队列和播放器交互进行了大规模性能优化。 + 播放器、投放、歌词、艺术家和流派界面经过重新设计,使用更顺滑。 + 导航和搜索流程更可靠,路由处理更安全。 + 改进了更多设备和格式的音频播放兼容性。 + 歌曲、专辑和播放列表等多选工作流进一步扩展。 + + + 队列和随机播放行为现在更加稳定、可预测。 + 修复了多个后台播放和投放场景下的边缘问题。 + 修复了睡眠定时器、文件标签页导航和专辑艺术家崩溃等问题。 + 改进了小组件加载和服务稳定性,以减少过热和内存问题。 + 全应用范围内的一般性 Bug 修复与界面打磨。 + + + Material 3 Expressive 界面更新 + 10 段均衡器与音效 + 全新媒体库同步流程 + AI 集成(Gemini 模型) + M3U 播放列表导入/导出 + Deezer 艺术家插图集成 + 自定义播放列表封面 + + + 设置架构重构 + 队列与播放器动画 + Baseline Profiles 与性能优化 + 更完善的歌词系统,支持同步偏移 + + + 投放稳定性改进 + 播放器面板稳定性改进 + 常规 Bug 修复与清理 + + + 导航大幅重设计 + 新增用于选择源目录的文件浏览器 + 新增连接性与投放功能 + 远程设备间的无缝连续体验 + 歌曲之间无缝衔接 + 淡入淡出控制 + 新增自定义过渡功能(仅限播放列表) + 关闭应用后继续播放 + 界面优化 + 统计功能改进 + 重新设计的队列控制,功能更多 + 改进了不同文件类型的播放和元数据编辑支持 + 改进权限控制器 + 小型 Bug 修复 + + + 引入更丰富的收听统计中心,让你更深入了解自己的播放会话。 + 推出浮动快捷播放器,可立即打开并预览本地文件。 + 新增文件夹标签页,提供树状导航和适合播放列表的视图。 + + + 全面优化 Material 3 界面,带来更整洁、更统一的体验。 + 元数据编辑现已支持更换封面。 + 优化了全应用的动画与过渡效果,使导航更流畅。 + 增强了艺术家页面布局,细节更丰富、观感更佳。 + 升级了 DailyMix 和 YourMix 的生成逻辑,选择更智能、更多样。 + 增强了 AI 播放列表生成能力。 + 改进搜索相关性和展示方式,以便更快发现内容。 + 扩展了对更多音频文件格式的支持。 + + + 解决了元数据异常问题,让歌曲详情在各处都能保持准确。 + 恢复了通知快捷方式,使其能够可靠地返回播放界面。 + + + 支持 Chromecast,可将音频从你的设备投放出去。 + 内置更新日志,让你及时了解最新功能。 + 支持 .LRC 文件,包括内嵌和外部两种形式。 + 支持离线歌词。 + 支持同步歌词(与歌曲同步)。 + 新增查看完整队列的界面。 + 可对队列中的歌曲重新排序和移除。 + 迷你播放器手势(下滑关闭)。 + 增加了更多 Material 动画。 + 新增可自定义外观与体验的设置。 + 新增清除缓存的设置。 + + + 用户界面全面重设计。 + 播放器全面重设计。 + 提升媒体库性能。 + 提升应用启动速度。 + AI 现在可提供更好的结果。 + + + 修复了标签编辑器中的多个问题。 + 修复了播放通知未能清除的问题。 + 修复了多个导致应用崩溃的问题。 + Wear OS:音乐传输、本地播放、队列同步和手表远程控制。 AI:集成 Groq AI 和 OpenRouter(实验性)并优化令牌使用。 diff --git a/app/src/main/res/values-zh-rCN/strings_screens.xml b/app/src/main/res/values-zh-rCN/strings_screens.xml index 05c09f55b..775051fd5 100644 --- a/app/src/main/res/values-zh-rCN/strings_screens.xml +++ b/app/src/main/res/values-zh-rCN/strings_screens.xml @@ -48,12 +48,12 @@ 正在检查备份包…… 应用主题 在开始浏览媒体库前,先选择你喜欢的外观。 - 稍后可在“设置 > 外观 > 应用主题”中更改。 + 稍后可在「设置 > 外观 > 应用主题」中更改。 推荐 媒体库布局 选择你偏好的媒体库浏览方式。 紧凑模式 - 稍后可在“设置 > 外观 > 媒体库导航”中更改。 + 稍后可在「设置 > 外观 > 媒体库导航」中更改。 媒体库 歌曲 专辑 @@ -71,7 +71,7 @@ 应用导航 选择底部导航栏的样式。 默认样式 - 稍后可在“设置 > 外观 > 导航栏样式”中更改。 + 稍后可在「设置 > 外观 > 导航栏样式」中更改。 暂时跳过 跳过 / 稍后再说 恢复中 @@ -130,7 +130,10 @@ \"%1$s\" - %2$s\n\n这首歌曲将从你的设备中被永久删除,且无法恢复。 - 你的\nMix + 你的\n精选辑 + 尚无可展示的数据 + PixelPlayer 找到曲目或从某个来源同步后,此处就将生成你的精选辑。 + 刷新 随机播放 %1$s 的专辑封面 选项 @@ -165,7 +168,7 @@ 历史记录 删除搜索历史条目 无结果 - 没有找到“%1$s”的结果 + 没有找到「%1$s」的结果 未找到任何内容 试试其他搜索词,或检查筛选条件。 未找到结果。 diff --git a/app/src/main/res/values-zh-rCN/strings_settings.xml b/app/src/main/res/values-zh-rCN/strings_settings.xml index fdf98bb51..bbcfa8fe0 100644 --- a/app/src/main/res/values-zh-rCN/strings_settings.xml +++ b/app/src/main/res/values-zh-rCN/strings_settings.xml @@ -98,7 +98,7 @@ 单侧预览 主页拼贴 拼贴图案 - 为“你的 Mix”拼贴选择形状排列方式。 + 为「你的精选辑」拼贴选择形状排列方式。 自动轮换图案 每次访问主页时轮换拼贴图案。 导航栏 @@ -163,7 +163,7 @@ 文件夹 返回手势优先控制文件夹 - 在“文件夹”标签页中,系统返回会先在文件夹层级中返回,再离开媒体库。 + 在「文件夹」标签页中,系统返回会先在文件夹层级中返回,再离开媒体库。 播放器手势 点按背景关闭播放器 点按模糊背景即可关闭播放器面板。