【问题标题】:Using AudioContext stops the audio from playing in the background使用 AudioContext 阻止音频在后台播放
【发布时间】:2021-11-27 04:04:53
【问题描述】:

我一直在使用 Web Audio API,但遇到了一个奇怪的问题。

目前,如果您在手机上打开网页并单击 HTML5 音频元素上的播放按钮,则即使在切换应用后,音频也会在后台继续播放。

但是,当您将元素附加到 AudioContext 时,音频将在切换应用后停止在后台播放。

要附加元素,我使用以下内容:

const context = new AudioContext()
const source = context.createMediaElementSource(document.querySelector("audio"))

source.connect(context.destination)

因此,即使我只是将 HTML5 音频元素连接到上下文的目标而不对其进行控制,但只要我切换应用程序,音频就会停止播放。

有谁知道为什么会发生这种情况,以及如何让音频在切换应用程序后继续在后台播放?奇怪的是,我们可以使用 Web Audio API 来控制网络上的音频,但我们必须保持浏览器打开并且手机解锁才能收听该音频。

【问题讨论】:

  • 我认为浏览器是故意这样做的。他们会以同样的方式限制和停止动画。
  • @TheFool,但 HTML5 音频在后台可以正常工作,除非您附加 AudioContext,否则它将不再工作。
  • @HawaiianPizza 以前的评论者是正确的,这是一种理想的行为,而您使用 HTML5 音频的情况似乎是您特定设备上的错误。
  • @YuriyKravets 它适用于所有设备,但不仅仅是我的,

标签: javascript html html5-audio


【解决方案1】:

预期的行为是让音频在手机上的浏览器退出时停止,因为它节省了后台处理,从用户的角度来看,我认为预期的行为是在您关闭时音频停止。

我认为您的音频在特定设备上不正确工作。

【讨论】:

  • 但音频在 Android 和 iOS 12、13、14 和 15 上的工作方式与描述相同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多