已阻止尝试创建WebMediaPlayer,因为已存在太多WebMediaPlayer
我们正在开发一个类似于浏览器中的数字音频工作站。我们需要在一个选项卡中处理多个音频文件。我们使用new Audio(audioUrl)
可以在我们自己的混音器中播放音频。到目前为止,它一直在为我们工作。
在最新版本的Chrome(92)中,我们遇到了上述代码片段导致以下错误的问题:
[Intervention] Blocked attempt to create a WebMediaPlayer as there are too many WebMediaPlayers already in existence. See crbug.com/1144736#c27
我无法访问提供的错误链接,它显示权限被拒绝。是否有建议的解决方法来处理此问题?
更新:
我从使用HTMLAudioElement
改为使用AudioBufferSourceNode
。这似乎是唯一直接的解决方案,因为Chrome团队正在讨论如何限制它们。注意:我们可能需要1000个以上的音频剪辑才能播放。这是指他们将在2021年8月5日的下一版本中将webmediaplayers
的数量增加到1000的铬讨论主题。
解决方案
Chrome92对特定选项卡中可以分配的音频和视频标签的数量进行了限制。 桌面浏览器为75,移动浏览器为40。
目前唯一的解决方案是限制页面中创建的音频和视频标签的数量。尝试重新使用已分配的音频/视频元素。
只有在启动Chrome时传递以下标志才能增加数量,例如--max-web-media-player-count=5000
(当然,我们不能期望最终用户这样做)
相关源代码如下: https://chromium-review.googlesource.com/c/chromium/src/+/2816118
编辑:
在取消分配音频/视频元素之前,以下设置似乎会强制清理该元素。
mediaElement.remove();
mediaElement.srcObject = null;
相关文章