如果您曾经尝试在智能手机上同时播放多个Android应用程序的音频,则可能已经意识到这样做很糟糕。当您最喜欢的Spotify音乐在背景中爆炸时,最好随便享受Android游戏。另一方面,如果您主要专注于《使命召唤:移动》这样的游戏中的游戏玩法,而又不会让音乐完全超过游戏音频,那也很好。Android的问题在于,操作系统仅提供了一些您可以控制音量的音频流,其中之一是媒体流。此媒体流是游戏和大多数音乐应用程序必须输出其音频的地方,因此在大多数情况下,您不得不同时控制游戏和音乐的音量。幸好,
Android提供了“音频焦点”的概念,这是一组可以由第三方应用程序协同使用的API,因此一次只能有一个应用程序可以保持焦点。应用程序可以选择每当其他应用程序接管音频焦点时,其音频是应该停止还是“闪避”。由于Google留给开发人员来决定失去音频焦点时如何处理事情,因此当另一个应用程序接管音频焦点时,应用程序的行为存在很多不一致之处。
XDA初级会员Alcatraz323提出了一个有趣的开源模块,它不仅可以让您强制多个应用程序同时播放音频(以防一个应用程序在另一应用程序接管音频焦点时选择停止播放其音乐),而且还具有能够按应用控制音量的功能。开发人员在Google Play商店中发布了一个名为“应用音量控制”的配套应用,并且还发布了Magisk名为“ Audio HeadQuarter”的模块来设置模块。Magisk模块由低级库组成,而Android应用允许您基于每个应用自定义音量行为。成功安装模块后,用户可以通过配套应用创建和调整应用特定的音频预设。用户还可以启用应用程序的浮动窗口,以轻松调整应用程序外部的音量。
根据开发人员的说法,类似于LineageOS的接近库存的软件或AOSP衍生的自定义ROM与该模块最兼容。小米的MIUI或华为的EMUI等沉重的OEM外观可能会使模块无法正常工作。我们在运行Android 10的扎根Google Pixel 4上安装了此mod,以验证其是否有效。我们能够识别出Spotify在播放的时间,这使我们能够在播放《使命召唤:移动》时控制Spotify音乐的响度。但是,该应用无法识别来自Google Play音乐的音乐播放。该应用程序警告说,它可能无法识别未通过此模块挂接的AudioMixer API发送的直接音频输出会话。因此,您的里程可能会有所不同。
该应用程序和模块的源代码托管在GitHub上。您可以使用Magisk Manager中的搜索功能下载Audio HeadQuarter模块,也可以直接从存储库的GitHub发布页面中获取它。开发人员建议不要使用Magisk的Canary版本,并建议在Magisk 20.2或更高版本的顶部安装mod 。虽然您可以从Google Play商店安装配套应用程序(在下面链接),但没有基础二进制文件,仅此应用程序就无法做任何事情。