桌宠背景是黑的 / 拖动时出现黑框

本页目录

适用范围:下文依据历史 issue 整理。原因、绕过方法与限制需结合报告版本判断;本文没有在所有平台实机验证,也不把 issue 关闭当作已发布修复。

「黑底」有三种完全不同的原因,解法也完全不同。先按平台和触发时机对号入座,别乱试。

你在哪看到的什么时候出现往下看
iPhone / iPad 的 Safari一直有,一个矩形黑底情况一
Windows 桌面模式只有拖动时出现,停下就消失情况二
桌面模式(各平台)静止时有一圈极浅的灰框情况三

情况一:iPhone / iPad Safari 上一整块黑底

这是最常见的一种,而且是设计上的取舍,不是 bug 没修。

你会看到

桌宠动画本身播放正常,但背后是一个 16:9 的黑色矩形。同一地址在电脑 Chrome 上完全透明、正常。

原因(两层)

第一层:Safari 不认 webm 的透明通道。 dsh-pet 的素材是 VP9 编码的 .webm,透明依赖 WebM 的 alpha 通道。 Safari / WKWebView 能解码 VP9,但会丢弃 alpha,视频层按不透明合成 → 黑底。 官方 README 里其实写了这一点(「Safari/WKWebView 不认 webm alpha」)。

第二层:.mov 素材不在 npm 包里。 Safari 需要的是 HEVC-alpha 编码的 .mov。这些文件体积大(约 79 MB), 官方没放进 npm 包,而是单独放在 GitHub Release 的 assets-mov 里。

更麻烦的是:当 .mov 缺失时,服务端会静默回退到 .webm, 不报错。你请求 .mov,拿到的其实是 video/webm,于是继续黑底。

怎么解决

  1. 下载 mov 素材包

    去官方 Release 页找 assets-mov: PC2005-cloud/dsh-pet releases

  2. 解压到指定目录
    # 目录结构必须是这个
    ~/.dsh/dsh-pet/main-animation/mov/
    
    # Windows 完整路径
    C:\Users\<你的用户名>\.dsh\dsh-pet\main-animation\mov\

    解压后这个目录里应该是一堆 .mov 文件(约 106 个),文件名和 webm 一一对应。

  3. 重启 DSH,用手机重新打开

    iPhone 上可能要清一下缓存,或者换个无痕窗口验证。

0.4.0 用户注意:0.4.0 的 webm 素材增加到 109 个,但 Release 上的 assets-mov 还是 106 个,缺少「睡觉-开始 / 睡觉-循环 / 睡觉-起来」三个。 这三个动画在手机上仍然会黑底,只能等官方补齐。

如果你不用手机看:这个问题对你没影响,不用折腾。桌面 Chrome / Edge 一直是正常的。

情况二:Windows 上拖动宠物时四周出现黑框

你会看到

宠物静止时正常透明。一旦拖动,四周(包括气泡框所在的留白区)立刻出现一个黑色矩形边框。 松手静止后黑框消失。

原因

桌面模式的宠物窗口是一个 transparent: true + frame: false 的 Electron 窗口,在 Windows 上就是分层窗口(WS_EX_LAYERED)。 拖动时窗口位置逐帧更新,DWM 会把还没重绘的透明区域合成成黑色。

怎么解决

关掉这个 helper 进程的硬件加速。编辑这个文件:

# 找到 dsh-pet 的安装目录下的
runtime/electron-helper/main.js

# npm 全局安装通常在
~/.dsh/profiles/web/node_modules/dsh-pet/runtime/electron-helper/main.js

在文件顶部 require('electron') 之后、app.whenReady() 之前加一行:

app.disableHardwareAcceleration();

然后重启 DSH。拖拽时的黑框会消失。

代价:这会让宠物窗口改用软件渲染,低端机上 CPU 占用会上升。 另外升级 dsh-pet 会覆盖这个文件,每次升级后要重新加。

如果你不想改代码:别拖它。用设置里的「停靠位置」和边距来定位宠物, 就不会触发这个渲染问题。

情况三:静止时有一圈极浅的灰框

不是纯黑,是一圈几乎看不出来的浅灰色边框,一直存在。

这个问题目前还没有确定的根因,官方 issue 里仍在讨论。 已知的是它和「透明余量区」有关——宠物窗口比宠物本体大一圈,那一圈透明区域在某些 合成设置下会显示成极浅的灰。

暂时没有可靠的解决办法。可以试试上面「情况二」的关硬件加速,部分环境下能改善。 如果没效果,去 issue #279 补充你的显卡和环境信息。

还有一种「黑」:不是黑底,是宠物根本不显示

如果你看到的不是黑色矩形,而是什么都没有,那不是这个页面说的问题—— 去看 桌宠装好了但桌面上不显示。

早期 WKWebView 透明兼容与素材体积请求也见#48;它包含 mov 资源建议,不能据此保证任意浏览器转格式后可用。

资料来源(历史报告):#18、#37、#48、#214、#260、#279。整理日期:2026-11-03,适用版本及证据限制见正文。