音效无法在 iOS 或 iPad 上播放,但在所有其他设备和浏览器上正常

问题描述 投票:0回答:1

我们有一个 React 网站,其声音效果可响应用户操作而播放。经过一番努力,它们终于可以在所有设备和浏览器上运行,包括 Android,但不能在 iPhone 或 iPad 上运行。它不完全是 Safari,因为它可以在 Safari 桌面上运行!

幸运的是,我们能够从 iPad 收到此控制台错误:

NotAllowedError: The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission.enter image description here

Screenshot of error

即使用户点击了取消静音按钮并且视频当前正在播放,也会发生这种情况。

我看到这是一个常见的问题,问了很多,但专门针对视频,而不是声音效果。我们可以预加载音频,如一些 Google 结果所示,但这可能不太适合我们的代码/用户体验的交付方式。 (它现在可以工作,但不能随着我们的扩展而工作)

我们尝试搜索堆栈溢出,并实施建议的修复,但是其中一些提到内联播放视频,还有一些提到预加载音频,我们正在尝试这样做,但是什么时候呢?而且,这会增加设备的负载,因此理想情况下,当播放或请求播放时。如果我们可以在请求的那一刻预加载然后播放它,那就可以了!

我们也尝试过

if (navigator.userActivation.hasBeenActive) {

按照https://webkit.org/blog/13862/the-user-activation-api/

这也没有解决问题......这有点令人震惊。

有人有什么想法吗?在这里被难住了!

任何见解/建议将不胜感激!

提前致谢!

reactjs iphone audio ipad safari
1个回答
0
投票

创建一个名为“`

的函数

调整基于设备类型的音量

`”根据设备是移动设备还是 iPhone 来调整音量。

© www.soinside.com 2019 - 2024. All rights reserved.