简体中文 | 繁體中文 | English |
Metrolist 深入拆解:从“找不到投屏按钮”到完整使用指南

Metrolist 深入拆解:从“找不到投屏按钮”到完整使用指南

typecho
2026-06-03 / 0 评论 / 130 阅读 / 正在检测是否收录... ===> PDD优惠福利券,千万好物,不要错过 <===

大家好~今天想聊聊一个在 Android 音乐爱好者圈子里挺火的开源客户端——Metrolist。它的代码在 GitHub 上,你可以随意 clone、改造,甚至自己打包发布。看似是个技术玩意儿,但它真正的价值在于:把 YouTube Music 那些隐藏在 Google 官方 App 里的功能,搬到了一个轻量、可自定义的播放器里。下面,我会先把最近在 issue 区看到的“Cast Button not available”问题拆开聊一聊,然后再系统性地把 Metrolist 的安装、使用、常见坑、进阶技巧全部写进来,力求让每位读者都能把它玩转。

🔎 为什么会找不到投屏按钮?

在 GitHub Issue #2383 里,报错的朋友用了两台设备:LineageOS(LOS)和 Echo Show 第一代,结果在播放页面根本看不到投屏(Cast)图标。根本原因其实很简单——Metrolist 依赖 Android 系统提供的 MediaRouter 服务来发现 Chromecast / DLNA 设备。如果系统的投屏框架被禁用、或者设备的 Google Play Services 版本太老、再加上系统自带的投屏实现不完整,就会导致 UI 上根本不渲染按钮。

可以把它比作在家里找电视遥控器:如果遥控器电池没电,电视根本不会显示“切换信号源”的选项。同理,系统的投屏服务挂了,Metrolist 只能默默地把按钮藏起来。

几个常见的“投屏失灵”场景

  • 系统定制 ROM(比如部分 LOS 版本)把 android.media.MediaRouter 权限关闭。
  • 设备没有预装 Google Play Services,导致 com.google.android.gms.cast.framework 包缺失。
  • 使用了自带的低配投屏实现(如部分 Echo Show),只支持 Alexa 投屏,不兼容 Chromecast 协议。

快速自救办法

  1. 打开系统设置 → 应用 → 权限,确保 媒体投射(或类似名称)已开启。
  2. 开发者选项里打开 强制开启媒体投射服务(部分 ROM 有此开关)。
  3. 如果仍然不行,用 Google HomeChromecast 生态插件先让系统识别投屏设备,再回到 Metrolist 检查按钮是否出现。
  4. 最保底的办法是:在 设置 → 关于手机 → 连续点击版本号打开开发者模式,随后在 系统设置 → 投屏里手动添加设备。

🚀 Metrolist 基础安装与启动全攻略

下面把从 git clone 到真机跑起来的每一步都写清楚,像做菜一样一步步跟着来。

一、准备工作

  • 装好 Android Studio Arctic Fox 以上(建议使用官方最新版)。
  • JDK 17+(Android Studio 自带),确保 java -version 能看到 17。
  • Android SDK:API 24 起步,建议装到 API 34(系统最新)。
  • Git 客户端,用来 clone 代码。

二、克隆仓库

git clone https://github.com/MetrolistGroup/Metrolist.git
cd Metrolist

如果网络慢,可以加上 --depth 1 只拉最新提交。

三、打开项目

打开 Android Studio,选 Open an Existing Project,指向刚刚的 Metrolist 文件夹。第一次打开会自动走 Gradle Sync,耐心等几分钟。

四、构建运行

有两种方式:

  1. IDE 直接点 “Run” 按钮,选择连接的真机或模拟器。
  2. 命令行构建:./gradlew assembleDebug,生成的 apk 在 app/build/outputs/apk/debug/app-debug.apk,手动安装。

五、首次启动注意事项

  • 打开后会弹出“允许后台播放”“访问存储”等权限,全部点同意。
  • 如果出现 YouTube Music 登录页面,直接使用谷歌账号登录即可。
  • 若在国内无法直接访问 YouTube,可先配置 VPN 或使用 yt-dlp 代理。

🌈 Metrolist 日常使用小技巧

下面列了几条我和社区朋友们最常用的功能,帮助你把 Metrolist 用得更顺手。

1. 离线缓存,像把歌单装进口袋

在播放页面下拉出现的 “下载” 按钮,一键即可把歌曲缓存到本地。缓存默认保存在 /Android/data/com.metrolist/files,可以用文件管理器自行清理。

2. 播放列表分享——把好歌传给朋友

长按任意播放列表条目,会弹出分享选项。内部实现是把列表转成 Intent.ACTION_SEND 的文本格式,你可以直接发微信、QQ,甚至发邮件。

3. 动态主题切换

设置 → 外观 → 主题,支持浅色、深色、黑色以及跟随系统。对喜欢夜间刷歌的朋友,打开“黑色主题”能把 OLED 屏幕耗电降到最低。

4. 端到端歌词同步

打开设置 → 歌词,选择 LrcLib 源。Metrolist 会在播放时自动拉取同步歌词,配合 滚动字幕,单曲卡拉 OK 再也不是问题。

5. 与 Discord “Kizzy” 集成

如果你是游戏玩家,打开 Kizzy 开关,Metrolist 会把当前正在播放的歌曲实时显示在 Discord Rich Presence,旁边的朋友一眼就能看出你在听什么。

⚠️ 常见坑与解决办法

  • 启动崩溃:检查 adb logcat 是否报错 ClassNotFoundException,大多数是因为未开启 Google Play Services 导致 InnerTube API 初始化失败。解决办法是手动安装 Google Play Services,或者在 gradle.properties 中把 useGoogleApis=false(实验性)打开。
  • 播放卡顿:在低配机型(如 2GB RAM)上,建议在设置 → 高级 → “使用 ExoPlayer 低功耗模式”。
  • 搜索不到歌曲:检查 YouTube Music 区域是否被q,若是请使用 V屁恩 + DNS over HTTPS
  • 投屏按钮消失:参考上文 Issue #2383 的排查步骤,确保系统投屏服务可用。

📚 小结与展望

Metrolist 之所以受欢迎,关键在于它把“酷炫的 UI + 强大的功能”浓缩进一个轻量的 APK,而且开源透明,想改哪儿改哪儿。通过本文,你已经能完成从代码拉取、环境搭建、基本使用到进阶功能的全链路。如果你对 Android 开发有一点点好奇,甚至想把它二次开发为自己的私有音乐播放器,完全可以在 app/src/main/kotlin 目录里动手实验。

最后提醒一句,开源社区的力量在于大家一起发现问题、提 PR、写文档。看到投屏按钮不见的 bug,别只抱怨,去 issue 区贴日志、提交复现步骤,甚至直接提交代码修补——这才是对“开源精神”的最佳致敬。

祝大家玩得开心,音乐常伴! 🎧💡

0

评论 (0)

取消