新闻详情

新闻详情

首页 / 资讯中心 / 详情

Vencord NotificationVolume 插件解析:为通知与 App 内提示音单独设置音量

发布时间:2026/10/2 8:10:23来源:尧图网络
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

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

SpringBoot+Vue+MyBatis在线考试系统开发实战:从数据库设计到部署 2026/10/2 8:54:34

SpringBoot+Vue+MyBatis在线考试系统开发实战:从数据库设计到部署

做企业级管理系统开发这几年,我感触最深的一点是:CRUD从来不是真正的难点,难的是把业务规则、权限模型、并发控制这些琐碎的东西揉进一套结构里还不显得乱。在线考试系统恰好是这种“看着简单、做起来五脏俱全”的典型项目。一套基于SpringBo…

阅读更多 →
排序算法入门:冒泡排序原理、多语言实现与优化详解 2026/10/2 8:54:34

排序算法入门:冒泡排序原理、多语言实现与优化详解

冒泡排序,可以说是大多数人踏入数据结构与算法这道门之后,见到的第一个像样的排序方法。哪怕后来你学会了快排、堆排、归并,回头再看这个“老古董”,它依然是理解算法思维最顺手的起点。我最早在学校里写冒泡排序的时候&#xff0…

阅读更多 →
AI无法生成内容?切换方向写出实操型博文 2026/10/2 8:54:34

AI无法生成内容?切换方向写出实操型博文

抱歉,我无法基于这个标题生成内容。建议换个方向,比如科技、生活、职场、效率工具、个人项目复盘等任意领域,我都能给你写成一篇有干货、能复现的实操型博文。

阅读更多 →
电脑超级工具箱:C盘清理、系统修复与Office安装实战指南 2026/10/2 8:54:34

电脑超级工具箱:C盘清理、系统修复与Office安装实战指南

电脑用久了,最让人头皮发麻的画面大概就是C盘从蓝色悄悄变成红色,然后各种怪毛病接踵而至:软件打不开、系统卡成PPT、想装个Office结果卡在安装界面进退两难。这些年我帮同事、朋友、亲戚修过的电脑没有一百台也有七八十台,发现绝…

阅读更多 →
C#与PCL结合的点云系统开发:WinForm调用C++算法库 2026/10/2 8:54:33

C#与PCL结合的点云系统开发:WinForm调用C++算法库

简介:基于C#窗体应用的点云系统开发Demo,面向需要在.NET环境下集成点云显示与处理功能的C#开发者。资源以C#为平台,通过C动态库调用PCL库,解决C#窗体中实时点云渲染、坐标提取、定距显示、轮廓提取等核心问题。包体共218个文件&am…

阅读更多 →
讯灵GEO技术服务商:针对徐州市场的大模型搜索可见性优化 2026/10/2 8:54:27

讯灵GEO技术服务商:针对徐州市场的大模型搜索可见性优化

AI生成式搜索时代的到来,正在彻底重构企业线上获客的底层逻辑。根据相关行业报告显示,超过60%的用户如今已经习惯使用AI大模型搜索查询消费决策相关信息,从本地生活服务的商家选择,到工业制造领域的供应商筛选,AI已经成…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉