V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
codingKingKong
V2EX  ›  问与答

各位佬好, 有没有遇见坚果投影仪+moonlight 没有办法调整分辨率的

  •  
  •   codingKingKong · 9 天前 · 508 次点击

    各位大佬, 我在用坚果投影仪, 在上面安装了 moonlight, 打开之后调整分辨率时, 发现 moonlight 的弹窗在投影仪的系统上显示不全, 有没有什么方法能设置分辨率啊?

    期待大佬和厂家的技术大佬…

    10 条回复    2025-02-13 19:52:01 +08:00
    boser1u
        1
    boser1u  
       9 天前
    插鼠标试试
    codingKingKong
        2
    codingKingKong  
    OP
       9 天前
    @boser1u 试过了, 在点击分辨率设置之后, 那个弹窗渲染不全, 只有标题和关闭按钮, 没有选择分辨率的那些 radio;
    muyi
        3
    muyi  
       9 天前
    codingKingKong
        4
    codingKingKong  
    OP
       9 天前
    @muyi 还没有, 中午回去试试, 正在考虑重新打包 moonlight, 把默认分辨率的值改了, 对 android 不太熟悉, 得边做边学; 还有个思路是, 能不能通过找到配置存储的文件或者 adb, 直接修改存储的配置值, 因为坚果的系统开通了 adb 功能
    codingKingKong
        5
    codingKingKong  
    OP
       9 天前
    @muyi 试了, 不行; 修改版没有修改设置菜单的实现方式, 调出来的弹窗还是系统级的那个;
    muyi
        6
    muyi  
       9 天前
    @codingKingKong #5 看到贴吧有人曾经改了代码的默认分辨率重新打包 apk ,但是 APP 其他菜单选项卡都为空,后续使用还有很多问题。那估计就是 UI 不兼容,试试阿西西的这个版本,它这个默认 UI 是全新的
    https://github.com/Axixi2233/moonlight-android/releases
    codingKingKong
        7
    codingKingKong  
    OP
       9 天前
    @muyi 我修改完了, 重新打了个包, debug 版本在模拟器上运行正常, release 版本安装失败, 可能是涉及到证书配置;
    我打算晚上试试打包的版本是不是能正常运行, 不行的话, 我再试试 axixi 这个版本的;
    ice000
        8
    ice000  
       8 天前
    连上 adb ,修改投影仪的 wm size 试试
    codingKingKong
        9
    codingKingKong  
    OP
       8 天前
    @muyi @ice000 用改默认值的方案解决了, 算是满足了我的需求, 短时间内不再计划折腾了;

    另外我看了一下代码+Gemini 给的提示, moonlight 使用了<ListPreference>这个组件, 它会把选择的值存储在 SharedPreferences 中, 如果想要通过 adb 修改的话, 可以尝试:
    ```shell
    adb shell
    run-as com.limelight cat /data/data/com.limelight/shared_prefs/com.limelight_preferences.xml # 可选,但推荐
    settings put global list_resolution "1920x1080"
    am force-stop com.limelight
    am start -n com.limelight/.MainActivity
    exit
    ```
    缺点应该是卸载就没有了, 需要重新设置;

    另外上面的两个方案都是临时解决方案, 我猜测底层还是坚果魔改的系统对<ListPreference>兼容不好, 但我不是 android 开发, 所以纯属猜测; 从源码上看<com.limelight.preferences.SeekBarPreference>这个 moonlight 自定义的组件反而能正常显示, 所以自己写一个自定义的 list 类组件应该也可以; 或者尝试 @muyi 提供的三方 moonlight(qiin2333 这个试过了, 不行; axixi2333 的没有尝试;)
    codingKingKong
        10
    codingKingKong  
    OP
       8 天前
    更新一下,
    ```shell
    settings put global list_resolution "1920x1080"
    am force-stop com.limelight
    am start -n com.limelight/.MainActivity
    exit
    ```
    上述代码经测试不可用, moonlight 读取的不是这里的变量, 它读取的是 SharedPreferences 中的内容, 本质上是:
    /data/data/com.limelight.debug/shared_prefs/com.limelight.debug_preferences.xml
    这个文件里的内容;

    我尝试使用如下 adb 命令更改 SharedPreferences, 但是失败了:
    ```shell
    run-as com.limelight
    app_process /system/bin --nice-name=sharedprefs com.android.shell settings get persistent com.limelight com.limelight.preferences list_resolution
    app_process /system/bin --nice-name=sharedprefs com.android.shell settings put persistent com.limelight com.limelight.preferences list_resolution "1920x1080"
    app_process /system/bin --nice-name=sharedprefs com.android.shell settings get persistent com.limelight com.limelight.preferences list_resolution
    ```
    得到的错误是: Aborted

    /data/data/com.limelight.debug/shared_prefs/com.limelight.debug_preferences.xml
    这个文件不确定是否需要 root 才可以更改, 亦或者有对应的 api 我不知道;
    如果有大佬对这个感兴趣, 尝试出了结果, 麻烦 @我一下, 谢谢;
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2894 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 08:29 · PVG 16:29 · LAX 00:29 · JFK 03:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.