macOS 防止微信 QQ 视频语音时其它 APP 声音减小的一种方法

2020-09-02 19:54:10 +08:00
 lcdtyph

自从微信 mac 版支持群组语音之后就一直在 mac 上用群组语音,但是有个很恼人的问题即开启语音后会自动降低其它 APP (如浏览器,音乐)的声音。

一开始使用 sound control 来把微信的声音降低,这样在开启语音后拉高全局音量来抵消这个影响,但是新的问题即是如果语音意外断开了,那么音乐会瞬间恢复全局音量吓人一跳…对耳朵也不好。

于是有了这个 repo: https://github.com/icpz/WeChat-AntiDuck

基本思路即注入一个 dylib,在 dylib 加载时 hook 掉 CoreAudio 的私有接口 AudioDeviceDuck,注入方式参考了 Sunnyyoung/WeChatTweak-macOS

有需要的朋友可以拿去自行修改

https://github.com/icpz/WeChat-AntiDuck

4745 次点击
所在节点    macOS
10 条回复
lcdtyph
2020-09-02 20:06:48 +08:00
完全不知道什么人会觉得这个功能有用- -|||

mac 一些自带的 app 会提供一个选项来关闭这个功能,也是通过调用私有 api 实现的。然而第三方如果这么做就没法上架 app store……
FEDT
2020-09-02 20:08:29 +08:00
好像有用等下看看
lcdtyph
2020-09-02 20:17:56 +08:00
@FEDT #2
有问题的话欢迎反馈讨论
wyq977
2021-02-02 18:33:34 +08:00
我的天 终于搞定了 之前 lol 的时候一直音量会变小

这个方法好像 Catalina 之后就不行了 https://zhaiyiming.com/archives/disable-macos-audio-ducking.html
https://www.v2ex.com/settings
Stackoverflow 上好像说过 LoopBack app 但是感觉为这下个 app 有点不值得

谢啦 要是有问题会梯 issue
cwcc
2021-08-25 16:04:27 +08:00
一条命令解决

printf "p *(char*)(void(*)())AudioDeviceDuck=0xc3\nq" | lldb -n QQ
cwcc
2021-08-25 16:06:04 +08:00
@crazywhalecc 这个命令需要在启动 QQ 后执行,有时候会因为各种 QQ 的谜之 bug 卡住一会儿,多等等跑完这条命令就可以不降低音量了。
lcdtyph
2021-08-25 16:29:03 +08:00
@crazywhalecc
对的,就是靠这个原理做的这个小工具
主要是不用每次都手动输入了,而且 0xc3 是硬编码的 x86 ret 指令,换到 arm 平台还要变化
doudoubaba
2021-09-03 09:33:35 +08:00
@lcdtyph 噫,我本人啊,从来没有好好听一次完整的这个问题描述,但是每次都有被吓到
fivebamboohu
2022-02-10 22:27:16 +08:00
@lcdtyph 请问 printf "p *(char*)(void(*)())AudioDeviceDuck=0xc3\nq" | lldb -n QQ 这个命令在 arm 下的编码是多少?或者哪里可以找到?
anticooo
2022-08-12 21:58:11 +08:00
2022 年了,真不知道这 Feature 有什么用。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/703654

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX