Android 10 已引入 AudioPlaybackCapture API。应用可以借助此 API 复制其他应用正在播放的音频。此功能类似于屏幕采集,但采集对象是音频。主要用例是视频在线播放应用,这些应用希望捕获游戏正在播放的音频。
请注意,对于其音频正在被捕获的应用,Capture API 不会影响该应用的延迟时间。
构建捕获应用
先决条件
为确保安全性和隐私,“捕获播放的音频”功能会施加一些限制。为了能够捕获音频,应用必须满足以下要求:
捕获音频
按音频内容限制捕获
应用可以使用以下方法限制其可以捕获的音频:
请注意,您不能同时使用 addMatchingUsage() 和 excludeUsage() 方法。您必须选用其中一个。同样地,您也不能同时使用 addMatchingUid() 和 excludeUid()。
允许捕获播放的音频
您可以配置应用以防止其他应用捕获其音频。只有当应用满足以下要求时,才可以捕获来自该应用的音频:
用法
捕获政策
播放器的捕获政策必须为 AudioAttributes.ALLOW_CAPTURE_BY_ALL,此政策允许其他应用捕获播放的音频。该操作可以通过许多方法完成:
如果满足这些前提条件,则应用可以捕获播放器生成的任何音频。
注意:应用的音频能否被捕获也取决于应用的 targetSdkVersion。
默认情况下,适配 Android 9.0 及之前版本的应用不允许捕获播放的音频。如要启用该功能,请在应用的 manifest.xml 文件中包含 android:allowAudioPlaybackCapture=