首页 > 解决方案 > 运行时创建音频失败 - 从缓存或服务器刷新?

问题描述

我在运行时创建音频,然后设置源。

let snd = new Audio();
snd.src = "file.mp3";

它每次都在 Edge 中工作。有时,它在 Chrome 中会失败,尤其是在我调试时。它仅在我第一次在会话中开始调试时才真正失败,之后几乎每次都可以正常工作。一旦它工作,它会重复为该会话工作。

请注意,错误是MEDIA_ERR_SRC_NOT_SUPPORTED,我知道这是不正确的,因为它通常是第二次起作用。

根据我在 Stackoverflow 上阅读的内容,对于大型声音文件(在我的情况下就是这样),这可能存在一个已知问题。

所以我的解决方案是,在触发 onerror 时刷新页面:

snd.onerror = _ => window.location.refresh(true);

注意true.

当您这样做时,true意味着您正在从服务器刷新。false表示您正在从缓存中刷新。

问题:考虑到我的问题,我应该做什么,true或者false

由于失败率低,调试起来真的很痛苦,所以任何建议都将不胜感激。

标签: javascriptaudiopage-refresh

解决方案


我认为是true。每次都这样。false只工作了几次。但正如我所说,由于这是一个间歇性错误,因此很难调试。


推荐阅读