fix: 优化视频/音频检测

This commit is contained in:
2026-01-18 20:33:46 +08:00
parent 1c7d48cd7a
commit 4ef611dc21
3 changed files with 148 additions and 8 deletions

View File

@@ -36,6 +36,17 @@
- 休息倒计时以“秒级稳定推进”为目标
- 设计目的:让休息提示的倒计时更平滑、更可预期
## 媒体播放检测(视频/音频)
- 目标:当你在“播放视频/音频”时,倾向不推进工作计时,避免把被动观看算作连续高强度工作
- 判定策略(由强到弱):
- 系统媒体会话SMTC/GSMTC当播放器/浏览器接入系统媒体控制时,可直接识别“播放/暂停”
- 音频会话峰值兜底:当系统媒体会话不可用时,通过默认音频设备的会话峰值判断是否正在输出声音
- 响应延迟:
- 计时器自身按 1 秒节拍检查一次
- 媒体状态会做短缓存刷新:播放中约 0.5 秒刷新、未播放约 1.2 秒刷新
- 实际体验通常是“暂停后约 1 秒左右恢复计时”
## 休息提醒(强提示的边界)
- 休息阶段会出现遮罩式提醒,核心是“让你意识到现在该休息了”
@@ -81,3 +92,29 @@
- 将“工作/休息时长、空闲判定阈值、主题偏好”等作为可持久化设置,保证重启后仍保持用户习惯
- 同时考虑“安装使用”和“解压即用”的便携形态:便携形态下更倾向把设置跟随程序一起携带,便于拷贝迁移
## 系统要求
- Windows 10 2004版本号 19041及以上媒体播放检测依赖系统媒体会话相关 API
## 编译与发布
- 开发环境要求
- WindowsWinForms 桌面程序)
- .NET SDK 9项目目标框架net9.0-windows10.0.19041.0
- 本地编译
- Debug
- `dotnet build`
- Release
- `dotnet build -c Release`
- 本地运行
- `dotnet run`
- 便携版打包(生成 dist zip
- PowerShell
- `.\scripts\publish-portable.ps1`
- 自包含(目标机无需安装 .NET Desktop Runtime
- `.\scripts\publish-portable.ps1 -SelfContained $true`
- 指定架构示例x64
- `.\scripts\publish-portable.ps1 -Rid win-x64`
- CMD
- `.\scripts\publish-portable.cmd`