抓取网页音频(Android系统捕获应用先决条件的方法和方法介绍(图))

优采云 发布时间: 2022-02-04 19:25

  抓取网页音频(Android系统捕获应用先决条件的方法和方法介绍(图))

  Android10 引入了 AudioPlaybackCapture API。应用程序可以使用此 API 复制其他应用程序正在播放的音频。此功能类似于 screen采集,但 采集 对象是音频。主要用例是想要捕获正在播放的游戏音频的视频流应用程序。

  请注意,Capture API 不会影响正在捕获音频的应用程序的延迟。

  构建捕获应用程序先决条件

  为确保安全和隐私,捕获播放音频功能施加了一些限制。为了能够捕获音频,应用程序必须满足以下要求:

  捕捉音频

  要从其他应用捕获音频,您的应用必须构造一个 AudioRecord 对象并向其添加 AudioPlaybackCaptureConfiguration。请按照以下步骤操作:

  调用以构建 AudioPlaybackCaptureConfiguration。通过调用将配置传递给 AudioRecord。限制音频内容的捕获

  应用程序可以使用以下方法限制它们可以捕获的音频:

  请注意,您不能同时使用 addMatchingUsage() 和 excludeUsage() 方法。您必须选择其中之一。同样,您不能同时使用 addMatchingUid() 和 excludeUid()。

  允许捕获播放的音频

  您可以配置应用程序以防止其他应用程序捕获其音频。只有当应用程序满足以下要求时,才能从应用程序中捕获音频:

  用法

  生成音频的播放器必须,或。

  捕获策略

  播放器的捕获策略必须是 ,它允许其他应用程序捕获正在播放的音频。这可以通过多种方式完成:

  如果满足这些先决条件,应用程序可以捕获播放器生成的任何音频。

  注意:能否捕获应用的音频也取决于应用的targetSdkVersion。禁用系统捕获

  上述允许捕获的保护仅适用于应用程序。默认情况下,Android 系统组件可以捕获正在播放的音频。其中许多组件是由 Android 供应商定制的,并支持辅助功能和字幕等功能。因此,我们建议应用程序允许系统捕获它们播放的音频。在极少数情况下,您可以将此捕获策略设置为 .

  在运行时设置策略

  在您的应用程序运行时,您可以调用 AudioManager.setAllowedCapturePolicy() 来更改捕获策略。如果调用该方法时MediaPlayer或AudioTrack正在播放音频,则对应的音频不受影响。您必须关闭并重新打开播放器或轨道才能使策略更改生效。

  策略 = 清单 + AudioManager + AudioAttributes

  由于可以在多个位置指定捕获策略,因此了解如何确定有效策略非常重要。您应该始终应用最严格的捕获策略。例如,即使 AudioManager#setAllowedCapturePolicy 设置为 ALLOW_CAPTURE_BY_ALL,清单中带有 setAllowedCapturePolicy="false" 的应用也绝不会允许非系统应用捕获其音频。同样,如果 AudioManager#setAllowedCapturePolicy 设置为 ALLOW_CAPTURE_BY_ALL 并且清单设置为 setAllowedCapturePolicy="true",但媒体播放器的 AudioAttributes 是使用 AudioAttributes.Builder#setAllowedCapturePolicy(ALLOW_CAPTURE_BY_SYSTEM) 构建的,非系统应用将无法捕获此媒体播放播放器播放的音频。

  下表总结了清单属性和活动策略的影响:

  allowAudioPlaybackCaptureALLOW_CAPTURE_BY_ALLALLOW_CAPTURE_BY_SYSTEMALLOW_CAPTURE_BY_NONE

  真的

  任何应用程序

  仅限系统

  没有捕获

  错误的

  仅限系统

  仅限系统

  没有捕获

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线