尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Vencord NotificationVolume 插件解析:为通知与 App 内提示音单独设置音量
即时通讯桌面应用前端插件系统【免费下载链接】VencordThe cutest Discord modification项目地址https://gitcode.com/GitHub_Trending/ve/Vencord点击查看免费下载NotificationVolume 是 Vencord 内置的一款音频体验优化插件核心能力是让用户为「通知提示音」和「应用内音效」如消息提示、通话响铃、静音/取消静音提示分别设置独立的音量避免通知声音过大伤耳。本文将结合插件源码与 Vencord 的插件设置体系从功能定位、底层实现原理、配置参数到源码结构完整讲解这一插件的工作方式读完即可理解它是如何在不修改 Discord 本体逻辑的前提下实现「独立音量」的。插件定位一套音量两套用途根据插件的官方 README见 src/plugins/notificationVolume/README.md该插件的用途一句话即可概括Set a separate volume for notifications and in-app sounds (e.g. messages, call sound, mute/unmute) helping your ears stay healthy for many years to come.即为通知音与应用内音效消息、通话铃声、静音/取消静音等设置一个独立的音量档位与 Discord 的主音量解耦从而保护听力。插件在插件列表中的描述为 Save your ears and set a separate volume for notifications and in-app sounds并带有Notifications与Voice两个标签说明它归属于「通知」与「语音」两个功能域作者为 Vencord 贡献者 philipbry见 src/utils/constants.ts 中Devs.philipbry条目。核心实现一行补丁改写音量计算公式插件本体非常精简全部逻辑集中在 src/plugins/notificationVolume/index.ts核心是一个 Vencord 标准的 Patch补丁机制patches: [ { find: ensureAudio(){, replacement: { match: /(?Math\.min\(\i\.\i\.getOutputVolume\(\)\/100)/g, replace: $self.settings.store.notificationVolume/100* }, }, ],其原理拆解如下定位find在 Discord 的 Webpack 模块中搜索包含字符串ensureAudio(){的模块。ensureAudio是 Discord 音频模块中负责「确保音频上下文可用」并计算实际输出音量的函数插件用它作为锚点定位到目标模块。匹配match正则(?Math\.min\(\i\.\i\.getOutputVolume\(\)\/100)使用了零宽正向断言lookahead只匹配但不消耗字符。其中\i是 Vencord 补丁语法中的「任意合法标识符」占位符会在编译期被规范化为(?:[A-Za-z_$][\w$]*)见 src/utils/patches.ts 的canonicalizeMatch因此能容忍 Discord 内部变量名的混淆变化。该断言匹配的位置是 Discord 计算最终音量的表达式Math.min(... .getOutputVolume()/100)之前。替换replace在被断言命中的位置前插入$self.settings.store.notificationVolume/100*使原始表达式变成Math.min(notificationVolume/100 * 某Store.getOutputVolume()/100, ...)其中$self是 Vencord 补丁系统的占位符会被替换为该插件模块的实际导入路径见 src/utils/patches.ts 中canonicalizeReplacereplace.replaceAll($self, pluginPath)。这样最终播放的音量就等于「用户设置的独立通知音量01」乘以「Discord 原有的输出音量系数」实现音量缩放而不改动 Discord 原有计算逻辑。从实现方式看可以推断该插件依赖一个关键前提Discord 通知音与部分应用内音效在播放时会经过getOutputVolume()这一统一的音量换算出口插件正是抓住了这个出口做了一次乘法缩放因而无需逐一拦截每个音效的播放调用。配置参数详解Slider 音量滑杆插件通过 Vencord 的definePluginSettingsAPI 声明了一个名为notificationVolume的设置项const settings definePluginSettings({ notificationVolume: { type: OptionType.SLIDER, description: Notification volume, markers: [0, 25, 50, 75, 100], default: 100, stickToMarkers: false } });对照 Vencord 设置类型定义src/utils/types.ts 中OptionType.SLIDER与PluginSettingSliderDef接口各字段含义与取值范围如下字段值含义typeOptionType.SLIDER声明该设置以滑杆Slider形式渲染在设置面板中descriptionNotification volume设置项在 UI 上的说明文案markers[0, 25, 50, 75, 100]滑杆上显示的刻度点0%100%步进 25%按类型定义要求至少两个值这里提供了 5 个default100默认音量 100%即默认不改变 Discord 原有音量stickToMarkersfalse是否「吸附刻度」。类型定义注释明确为false时允许用户选中刻度之间的任意值为true时只能停在刻度点上需要特别说明的是这里的音量值是百分比形式0100而补丁公式中除以 100 后才参与乘法因此设置 50 即表示以原音量的 50% 播放设置 0 即完全静音。默认值 100 意味着插件启用后不做任何音量改动必须由用户主动调低音量才生效这保证了启用插件零副作用。definePluginSettings返回的对象带有store访问器见 src/api/Settings.ts 的definePluginSettings实现补丁中使用的$self.settings.store.notificationVolume正是通过该store读取用户当前保存的实时值因此无需重启客户端拖动滑杆即可即时生效该设置项未标记restartNeeded。使用方式打开 Vencord 设置 → 插件Plugins页面搜索并启用NotificationVolume。展开插件的设置区域找到 Notification volume 滑杆。拖动滑杆到期望的音量百分比0100支持 25 的整数倍刻度也可停在任意中间值。建议从 5075 开始若同时希望保留系统通知的提醒效果又降低刺耳感可继续下调。播放一条消息提示音或进行一次通话即可听到独立音量立即生效。若要恢复 Discord 原生音量行为将滑杆拖回 100或直接关闭该插件即可关闭插件后所有补丁随之移除行为完全还原。源码结构小结该插件属于「单文件补丁型」插件的典型代表目录结构非常精简src/plugins/notificationVolume/ ├── README.md # 功能说明 └── index.ts # 设置定义 补丁逻辑全部核心代码它没有独立的 CSS、组件或跨文件依赖一次definePluginSettings声明设置、一次patches补丁即完成全部功能非常适合作为理解 Vencord 补丁机制find/match/replace/$self占位符与滑块设置项OptionType.SLIDER的入门范例。如果你想进一步了解补丁替换中$self的规范化过程可阅读 src/utils/patches.ts想了解滑块设置项的类型约束markers至少两个值、stickToMarkers语义可阅读 src/utils/types.ts 的PluginSettingSliderDef定义。赞分享即时通讯桌面应用前端插件系统【免费下载链接】VencordThe cutest Discord modification项目地址https://gitcode.com/GitHub_Trending/ve/Vencord点击查看免费下载相关推荐Seal应用内通知声音自定义通知提示音的设置Seal应用内通知声音自定义通知提示音的设置 你是否厌倦了手机上所有应用都使用相同的通知声音作为一款功能强大的Android音视频下载工具Seal不仅能帮移动开发音视频揭秘Twitch CLI内部工作原理从代码到实战的深度剖析揭秘Twitch CLI内部工作原理从代码到实战的深度剖析 Twitch CLI是官方推出的终极开发工具能让开发者轻松构建Twitch应用。本文将带你探索其BlockTheSpot通知设置详解控制桌面提醒与声音提示BlockTheSpot通知设置详解控制桌面提醒与声音提示 1. 引言通知管理的重要性 在日常使用Spotify声田时频繁的广告通知和声音提示可能会打桌面应用上一篇终极Windows驱动管理指南DriverStore Explorer 5个专业技巧深度解析下一篇Slidev 布局系统完全指南内置布局、Layout 加载顺序与自定义布局实战创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

SAP Data Services 连接 MySQL 的 ODBC 驱动配置与 SSL 字符集避坑指南

SAP Data Services 连接 MySQL 的 ODBC 驱动配置与 SSL 字符集避坑指南

简介:本资源是一份面向SAP数据集成工程师与ETL开发人员的实操指南,聚焦SAP Data Services连接MySQL数据库的核心配置流程,解决跨平台数据源接入、元数据导入与表级数据验证等典型问题。文档以步骤化方式详解ODBC驱动配置、Data Store创建、My…

📅 2026/10/2 8:10:20
Remote In Tech 公司档案解析:Exoscale 的完全远程欧洲云托管实践

Remote In Tech 公司档案解析:Exoscale 的完全远程欧洲云托管实践

数据集 【免费下载链接】remote-jobs Source for remoteintech.company — a community-maintained directory of remote-friendly tech companies 项目地址: https://gitcode.com/GitHub_Trending/re/remote-jobs 点击查看 免费下载 这篇技术指南以 exoscale.md 这…

📅 2026/10/2 8:05:20
如何快速下载并解密视频号、抖音等平台的加密视频:res-downloader 使用指南

如何快速下载并解密视频号、抖音等平台的加密视频:res-downloader 使用指南

如何快速下载并解密视频号、抖音等平台的加密视频:res-downloader 使用指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downlo…

📅 2026/10/2 8:05:20
MORE NEWS

更多资讯

📰

小超市店主提问:AI真的懂零售吗

坐标某三线城市,社区超市店主,店开在小区门口第八年。标题这个问题我替各位店主问过了——答案是:它懂的不是零售,是您店里那点事。亲身经历,往下看。 我为什么怀疑 开店的都知道,零售这事看着简单&#xf…

📰

定投还是梭哈?给金融小白的“加密资产”配置指南(附风险测评)

扎心一问:你身边是不是总有这样的人——2021年牛市顶峰All in冲进去,结果腰斩再腰斩,到现在还在山顶吹冷风?😭说白了,加密市场最不缺的就是“一夜暴富”的故事,但更不缺的是“一把梭哈、天台排队…

📰

链上转账出错能撤回吗?这4个“不可逆”的瞬间,碰到一个就血本无归

转账地址填错一个字母,你的钱就永远没了——这不是吓唬你,这是区块链世界里每天都在发生的真实悲剧。你猜怎么着?就在上个月,有个哥们儿把 12 个比特币(价值约 80 万人民币)转错地址,结果对方账…

📰

串口与CAN总线:协议架构、通信机制与工程选型的深度比较

目录 1 引言 2 协议架构与标准定位 2.1 串口:物理层与字符级协议的松散组合 2.2 CAN:覆盖数据链路层的完整总线协议 3 物理层与电气特性比较 3.1 信号传输方式 3.2 终端匹配与传输线效应 3.3 电气特性对比 4 数据链路层与帧结构比较 4.1 帧格式…

📰

Android 13 Launcher3 Hotseat布局方向定制:从底部横排到左侧竖排

做定制ROM这些年,Launcher里的Hotseat是我改得最多、也最容易翻车的一块。Hotseat就是手机最底下那排固定应用栏,源码里叫Hotseat,圈子里习惯叫Dock。Android 13的Launcher3代码结构比老版本复杂不少,很多项目从旧版本升级过来以后…

📰

Ghostfolio 仓库 Angular 端到端(E2E)测试接入实战:框架选型、ng add 配置与运行指南

后端前端金融科技数据可视化 【免费下载链接】ghostfolio Open Source Wealth Management Software. Angular NestJS Prisma Nx TypeScript 🤍 项目地址: https://gitcode.com/GitHub_Trending/gh/ghostfolio 点击查看 免费下载 本篇技术指南围绕 e…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬