Webchat Audio Notifications

Polar Sponsor
爱发电 赞助
.NET 9.0

为Moltbot/Clawdbot网页聊天添加音频通知,提供5档强度(从轻声到无法忽略),仅在标签页后台时生效。

QQ Webchat 音频通知

功能概述

QQ Webchat 音频通知是一项面向实际任务的技能,主要用于为 Moltbot/ Clawdbot 网络聊天浏览音频通知;当新信件到达时, 播放一个通知声音, 但只有在标签在背景中时才使用;

核心要点

  • Feature。
  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。

使用与执行

该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

🔔 Webchat 音频通知

Moltbot/Clawdbot Webchat 的浏览器音频通知功能。当新消息到达时播放提示音——但仅在当前标签页处于后台时触发。

特性

  • 🔔 智能通知 —— 仅在标签页被隐藏时播放
  • 🎚️ 音量控制 —— 可调节范围:0–100%
  • 🎵 5 级强度档位 —— 从“耳语级”(1)到“绝对无法忽略”(5)
  • 📁 自定义音效 —— 支持上传 MP3、WAV、OGG、WebM 格式音频文件
  • 🔕 一键开关 —— 单击启用或禁用通知
  • 💾 持久化设置 —— 配置项保存于 localStorage 中
  • 📱 移动设备友好 —— 在移动端优雅降级
  • 🚫 自动播放处理 —— 遵循浏览器自动播放策略
  • ⏱️ 冷却时间 —— 防止通知刷屏(两次提醒间隔至少 3 秒)
  • 🐞 调试模式 —— 可选控制台日志输出

快速开始

测试概念验证(POC)

cd examples
python3 -m http.server 8080
# 打开 http://localhost:8080/test.html

测试步骤:

  1. 切换至其他标签页
  2. 点击“Trigger Notification”按钮
  3. 听到提示音!🔊

基础集成

// 初始化
const notifier = new WebchatNotifications({
  soundPath: './sounds',
  soundName: 'level3',  // 中等强度(默认)
  defaultVolume: 0.7
});

await notifier.init();

// 新消息到达时触发通知
socket.on('message', () => notifier.notify());

// 不同事件使用不同强度
socket.on('mention', () => {
  notifier.setSound('level5');  // 提及(@mention)使用最高强度
  notifier.notify();
});

API

构造函数参数

new WebchatNotifications({
  soundPath: './sounds',               // 音效目录路径
  soundName: 'level3',                 // 强度等级:level1(耳语)至 level5(极响)
  defaultVolume: 0.7,                  // 音量:0.0 至 1.0
  cooldownMs: 3000,                    // 两次提醒之间的最小间隔(毫秒)
  enableButton: true,                  // 是否显示启用提示按钮
  debug: false                         // 是否启用控制台日志
});

强度等级说明:

  • level1 —— 耳语级(9.5KB),最细微
  • level2 —— 轻柔级(12KB),温和
  • level3 —— 中等级(13KB),默认值
  • level4 —— 响亮级(43KB),引人注意
  • level5 —— 极响级(63KB),绝对无法忽略

方法

  • init() —— 初始化(需在 Howler 加载完成后调用)
  • notify(eventType?) —— 触发通知(仅当标签页处于隐藏状态时生效)
  • test() —— 立即播放音效(忽略标签页可见性状态)
  • setEnabled(bool) —— 启用或禁用通知
  • setVolume(0–1) —— 设置音量(0.0 至 1.0)
  • setSound(level) —— 切换强度等级('level1' 至 'level5')
  • getSettings() —— 获取当前全部配置项

浏览器兼容性

浏览器 版本 支持情况
Chrome 92+ ✅ 完全支持
Firefox 90+ ✅ 完全支持
Safari 15+ ✅ 完全支持
移动设备 最新版 ⚠️ 功能受限

总体覆盖: 92% 的用户(支持 Web Audio API)

文件结构

webchat-audio-notifications/
├── client/
│   ├── notification.js       # 主类(10KB)
│   ├── howler.min.js         # 音频库(36KB)
│   └── sounds/
│       ├── level1.mp3        # 耳语级(9.5KB)
│       ├── level2.mp3        # 轻柔级(12KB)
│       ├── level3.mp3        # 中等级(13KB,默认)
│       ├── level4.mp3        # 响亮级(43KB)
│       └── level5.mp3        # 极响级(63KB)
├── examples/
│   └── test.html            # 包含全部强度档位的独立测试页面
├── docs/
│   └── integration.md       # 集成指南
└── README.md                # 完整文档

集成指南

详见 docs/integration.md,涵盖以下内容:

  • 分步安装流程
  • Moltbot 特定钩子(hooks)
  • React/Vue 示例代码
  • 常见使用模式(如 @mentions、免打扰 DND、徽章提示等)
  • 测试检查清单

配置示例

简易配置

const notifier = new WebchatNotifications();
await notifier.init();
notifier.notify();

高级配置

const notifier = new WebchatNotifications({
  soundPath: '/assets/sounds',
  soundName: 'level2',  // 默认使用轻柔级
  defaultVolume: 0.8,
  cooldownMs: 5000,
  debug: true
});

await notifier.init();

// 普通消息 = 轻柔级
socket.on('message', () => {
  notifier.setSound('level2');
  notifier.notify();
});

// 提及(@mention)= 极响级
socket.on('mention', () => {
  notifier.setSound('level5');
  notifier.notify();
});

// 私信(DM)= 响亮级
socket.on('dm', () => {
  notifier.setSound('level4');
  notifier.notify();
});

带 UI 控件的配置



故障排查

没有声音?

  • 先点击页面任意位置(解除浏览器自动播放限制)
  • 确认当前标签页确实处于隐藏状态
  • 检查音量是否大于 0
  • 查看控制台是否有报错信息

标签页激活状态下仍播放声音?

  • 启用调试模式
  • 检查控制台是否输出 “Tab is visible, skipping” 提示
  • 若未出现该提示,请作为 bug 提交

移动端无法工作?

  • iOS 要求每次播放前必须有用户手势触发
  • 建议搭配视觉回退方案(例如闪烁 favicon)

性能表现

  • 打包体积: 约 122KB(已压缩)
  • 内存占用: 播放期间约 2MB
  • CPU 占用: 可忽略(由浏览器原生实现)
  • 网络请求: 一次性下载,后续由缓存提供

安全性

  • ✅ 无任何外部网络请求
  • ✅ 仅使用 localStorage
  • ✅ 不含任何追踪逻辑
  • ✅ 无需特殊浏览器权限

许可证

MIT License

致谢

  • 音频库: Howler.js(MIT 许可证)
  • 音效资源: Mixkit.co(免版税授权)
  • 作者: @brokemac79
  • 面向: Moltbot/Clawdbot 社区

参与贡献

  1. 使用 examples/test.html 进行测试
  2. 启用调试模式
  3. 提交 issue 时请附上浏览器类型与控制台完整输出

路线图

  • WebM 格式支持(更小体积)
  • 按事件类型区分音效(如 mention、DM 等)
  • 视觉回退方案(favicon 闪烁)
  • 系统通知 API 集成
  • 设置界面组件
  • 免打扰(Do Not Disturb)模式

当前状态: ✅ v1.1.0 已完成 —— 支持 5 级强度档位
已测试浏览器: Chrome、Firefox、Safari
就绪状态: 可用于生产环境 & ClawdHub 发布

相关链接

  • 📖 README —— 完整文档
  • 🔧 集成指南 —— 安装与配置说明
  • 🧪 测试页面 —— 亲自体验功能
  • 💬 Discord 讨论帖 —— 社区交流

相关专题

更多
Uvicorn 报错与问题解决教程
Uvicorn 报错与问题解决教程

本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。

2026.11.02

0

14

Uvicorn使用教程
Uvicorn使用教程

本专题汇总了Uvicorn使用教程与启动运行指南,涵盖其作为Python ASGI服务器的定位与特点,以及命令行启动(uvicorn main:app --reload)、参数配置(host/port/workers)、程序内嵌运行与Gunicorn结合部署等核心用法。同时整理了热重载调试、日志配置与生产环境部署优化等技巧,助你快速掌握Uvicorn的运行与配置。

2026.11.02

0

17

Uvicorn安装配置教程
Uvicorn安装配置教程

本专题汇总了Uvicorn的安装配置教程与部署指南,涵盖通过pip安装Uvicorn、启动FastAPI/Starlette应用、开发模式热重载(--reload)及多进程工作模式配置等核心操作。同时整理了结合Gunicorn的生产部署方案、HTTPS与反向代理配置及性能调优技巧,助你快速完成Uvicorn服务的安装与上线部署。

2026.11.02

0

17

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

0

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

0

15

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

2026.10.28

0

10

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习