我正在编写一个应用程序来使用 REMOTE_SUBMIX 录制来自设备的音频。根据这个PAGE,据说
某些流被排除在远程子混音之外,包括 STREAM_RING、STREAM_ALARM 和 STREAM_NOTIFICATION。这些流将继续像往常一样在本地呈现。
现在我也想排除 STREAM_SYSTEM,但我找不到在 AOSP 源代码或任何配置文件中定义此策略/策略的位置。
有谁知道这方面的任何线索?非常感谢。
我正在编写一个应用程序来使用 REMOTE_SUBMIX 录制来自设备的音频。根据这个PAGE,据说
某些流被排除在远程子混音之外,包括 STREAM_RING、STREAM_ALARM 和 STREAM_NOTIFICATION。这些流将继续像往常一样在本地呈现。
现在我也想排除 STREAM_SYSTEM,但我找不到在 AOSP 源代码或任何配置文件中定义此策略/策略的位置。
有谁知道这方面的任何线索?非常感谢。
它在 audiopolicy 服务代码中(除非您在使用基于 Parameter Framework 的路由代码的英特尔设备上,否则它在配置文件中)。
我认为您感兴趣的代码在这里:
audiopolicy 以这种方式工作:首先它使用Engine::getStrategyForStream
函数为流找到“策略”,然后Engine::getDeviceForStrategyInt
为该策略选择一个设备。
似乎两者都STREAM_SYSTEM
使用STREAM_MUSIC
相同的STRATEGY_MEDIA
:
因此,如果要排除系统声音,但将音乐播放保留在远程子混音上,则必须进行更改。