javascript - 运行时创建音频失败 - 从缓存或服务器刷新?
问题描述
我在运行时创建音频,然后设置源。
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
?
由于失败率低,调试起来真的很痛苦,所以任何建议都将不胜感激。
解决方案
我认为是true
。每次都这样。false
只工作了几次。但正如我所说,由于这是一个间歇性错误,因此很难调试。
推荐阅读
- docker - 在 URL http://10.10.10.10/site-a 和 http://10.10.10.10/site-b 的不同子文件夹中托管容器
- r - 通过在 R 中操作数据框将账户级别预测转换为投资组合预测
- spring-boot - Sprinboot 应用程序在 kubernetes 中挂起
- apache-spark - sparklyr spark_apply 很慢
- pandas - Pandas - 将行转换为不同的数据框
- bash - Bash 使用部分符号
- git - 无法将大型仓库从 gitlab 迁移到 github
- java - 使用 Spring Boot 和 Tomcat 提供前端内容
- php - 检查三元运算符中是否为空
- python - 安装的 Python 脚本无法在 Windows 中运行