IE 9 和 10 产生意外且不一致的 MediaError

2023-12-23

我们有一组 HTML 块——比如说大约 50 个——它们被迭代地解析并具有Audio动态添加的对象:

var SomeAudioWrapper = function(name) {

  this.internal_player = new Audio();

  this.internal_player.src = this.determineSrcFromName(name);
     // ultimately an MP3

  this.play = function() {
    if (someOtherConditionsAreMet()) {
      this.internal_player.play();
    }
  }

}

假设我们在页面加载时生成大约 40 到 80 个,但对于特定配置总是相同的集合。在所有测试过的浏览器中,这个基本策略似乎都有效。音频加载并播放成功。

在 IE 9 和 10 中,出现了一个暂时性错误。有时,打电话.play()在内部Audio对象失败。经检查,内部Audio对象有一个.error.code of 4 (MEDIA_ERR_SRC_NOT_SUPPORTED http://msdn.microsoft.com/en-us/library/ie/ff974742(v=vs.85).aspx)。文件.duration shows NaN.

然而,这种情况只是偶尔发生,并且发生在音频文件的某些随机子集上。例如。,usually file_abc.mp3播放,但有时会产生错误。无论哪种情况,网络监视器都显示下载成功。尝试通过控制台重新加载文件也会失败——并且 IE 的网络监视器中没有出现任何请求:

var a = new Audio();
a.src = "the_broken_file.mp3";
a.play(); // fails
a.error.code; // 4

即使附加查询值也无法重新获取音频或触发任何网络请求:

var a = new Audio();
a.src = "the_broken_file.mp3?v=12345";
a.play(); // fails
a.error.code; // 4

但是,尝试使用相同的代码在新选项卡中加载损坏的音频文件是有效的:“不受支持的src”可以完美播放。

我们可能会遇到任何资源限制吗? (也许“不受支持”的音频下载较晚?)是否有任何已知的错误?解决方法?

我认为我们可以很容易地检测到文件何时失败。出于其他兼容性原因,我们运行一个循环来检查音频进度和完成状态,以防止在音频完成之前通过应用程序进行进度(评估)。我们可以很容易地寻找.error价值观——但如果我们找到了一个价值观,我们该怎么办!?

Addendum:我刚刚发现一个相关问题(IE 9/10/11 声音文件限制 https://stackoverflow.com/questions/22522493/ie-9-10-11-sound-file-limit)表明未记录的限制为 41——不确定这是否是“41 个音频文件请求”、“41 个内存中音频对象”的限制,或者what。我还没有找到任何关于此事的 M$ 文档——或者已知的解决方案。


您看过这些有关 IE 中音频文件限制的页面吗?这些信息特定于 Sound.js,但这些信息可能适用于您的问题:

https://github.com/CreateJS/SoundJS/issues/40 https://github.com/CreateJS/SoundJS/issues/40 ...

上一条评论中提到的可能的解决方案:“根据平台控制音频标签的最大数量并重用它们而不是重新创建它们”

附加信息:http://community.createjs.com/kb/faq/soundjs-faq http://community.createjs.com/kb/faq/soundjs-faq(请参阅标题为“我加载了很多声音,为什么在 Internet Explorer 中遇到错误?”的部分)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IE 9 和 10 产生意外且不一致的 MediaError 的相关文章

  • 使用 Selenium + JavaScript 或 WebDriverJS 在浏览器中执行 JavaScript

    经过很多天的大量搜索后 我在这里寻求帮助 我们有一个使用 javascript selenium webdriverjs 的设置 我们想要在通过 selenium 打开的浏览器中传递数据 简单来说 我们希望在浏览器中执行任何类型的 Java
  • 如何使用鼠标单击选择多个项目?

    This is the default jQueryUI display as a Grid Layouts demo here http jqueryui com demos selectable display grid I can s
  • 禁用 Ctrl + 滚动以缩放谷歌地图

    Does anybody know how to disable the CTRL Scroll First when the mouse wheel was moved the Map would Zoom in out But now
  • 设置 JavaScript 对象的 length 属性

    假设我有一个 JavaScript 对象 function a var A this length function return A length this add function x A push x this remove func
  • 找不到 firebase-messaging.js laravel

    大家好 我正在使用 firebase 制作一个用于推送通知的应用程序 这是我在 firebase 中的第一个项目 我遇到的问题是当我运行项目并单击它给我的登录按钮时的连接 已授予通知权限 但在此之后它返回一个错误 如下所示 获取脚本时收到错
  • 无法使用 Node.JS 将 null 值发送到 MySQL 数据库

    我正在尝试发送null使用 Node JS 到我的 MySQL 数据库 con query INSERT INTO Routes routeTrigger VALUES null title test function err result
  • 重置输入控件的边框颜色 (HTML/Javascript)

    有谁知道使用 javascript 修改输入控件后如何重置它的边框颜色 通过突出显示其中包含不正确或无效数据的字段等来进行验证非常有用 例如 改变边框 document getElementById myinput style border
  • JavaScript 函数参数和范围

    我用下面列出的代码做了一些测试 function foo x alert y var y I am defined outside foo definition foo 上面的代码给了我一个警告 我是在 foo 定义之外定义的 然后另一个测
  • Internet Explorer 的数组indexOf 实现

    有很多关于如何将 indexOf 实现放入数组原型中以便它可以在 Internet Explorer 下工作的解决方案 但是我偶然发现了一个问题 到目前为止我所看到的任何地方似乎都没有解决这个问题 使用非常一致的MDC 的实施 https
  • 如果只有一个元素发生变化,为什么 AngularJs 会更新数组/哈希映射的所有元素?

    我有一个简单的哈希图和一个以文本形式显示状态的简单方法 但是当我仅更新 1 个用户状态时 所有这些状态都会更新 为所有用户调用函数 有没有一种方法可以只更新一个元素而不是全部 示例代码在这里 只需看看当您单击 更改状态 按钮时控制台中会发生
  • 不明白为什么 Chrome/Safari 无法在此处获取 ScrollHeight

    我只是问了一个问题 为什么某些 js 代码不能 100 在 Chrome 和 Safari 中工作 但经过更多故障排除后 我想我发现这是我应该发布的问题 我有一个页面 其中有一个表单 该表单的目标是同一页面上的 iframe iframe
  • JavaScript 中的自定义“确认”对话框?

    我一直在开发一个使用自定义 模式对话框 的 ASP net 项目 我在这里使用吓人引号 因为我知道 模式对话框 只是我的 html 文档中的一个 div 它被设置为出现在文档其余部分的 顶部 而不是真正意义上的模式对话框 在网站的许多部分
  • 如何在 ES6 类中使用静态变量?

    我正在尝试在 es6 中使用静态变量 我想声明一个静态变量count in Animal类并增加它 但是 我无法通过声明静态变量static count 0 所以我尝试了另一种方法 class Animal constructor this
  • Google Apps 脚本:如何水平对齐 inlineImage

    我有以下代码 它是一个更大程序的一部分 我正在尝试将图像从我的 Google 驱动器插入到 Google 文档中 并调整其大小并居中 到目前为止 我能够让程序插入图像并调整其大小 但我不知道如何使 inlineImage 居中 我是使用谷歌
  • 为什么 `BehaviorSubject` 不发出最后一个值

    The 关于BehaviorSubject的文档 http reactivex io documentation subject html声明它应该返回最后发出的值 无论我何时订阅 但它不会为我返回它 const ofObservable
  • 在Java中一个接一个地播放WAV文件

    我正在尝试玩几个WAV http en wikipedia org wiki WAV文件一个接一个 我尝试了这个方法 for String file audioFiles new AePlayWave file start 但这会同时播放它
  • ajax - 检查用户名是否存在+如果存在则返回消息

    我试图检查用户想要的用户名是否已被使用 而无需发送表单 基本上是用户名字段的模糊 我遇到了一些麻烦 有几个问题 我有我的输入字段加上js
  • 同步通用分析

    新的Universal Analytics重新引入了同步事件跟踪 https developers google com analytics devguides collection analyticsjs method reference
  • Rails 6 webpack 抛出“未捕获的引用错误:$未定义”

    大家好 我最近开始使用 ruby 2 6 5 开发 Rails 6 由于 Rails 6 引入了 webpack 所以我尝试使用 webpack 加载我的 js 文件 尽管我已经在 appliation js 中需要了 jquery 但我仍
  • 谷歌地图通过骨干javascript返回div标签但不显示

    我已经开始使用地理定位 我可以获得坐标等 我想在地图中显示它 但是当我将地图返回到 div 时 什么也没有显示 现在我查看了 div 地图正在返回 但只是不可见 这是有问题的 div 请注意 这似乎只是一个小地图的链接 a style di

随机推荐

  • XQuery:为什么“() = ()”和“() eq ()”的计算结果都为 false?

    以下 XQuery 片段 let x return if not x eq x and not x x then wat else makes sense returns wat 为什么 这有效布尔值 https learn microso
  • 仅匹配以“www”或“http(s)://”开头的 URL,仅匹配以“www”或“http(s)://”开头的 URL

    我正在使用一个正则表达式我的博客网站的模式 使 URL 地址为可点击的链接 效果很好 该模式具有以下格式 href a zA Z0 9 2 256 a z 2 4 b a zA Z0 9 所以有什么问题 但最近我发现这个模式也匹配文件名因此
  • python中文件的权限更改

    我想更改当前目录树中所有文件的文件权限 我正在尝试打开每个目录并打开文件并使用更改权限os chmod 但是出现错误 import os import stat for files in os walk os chmod files sta
  • 使用 C# 在 List<> 中查找项目

    我有一个包含对象集合的列表 如何在该列表中搜索某个项目object Property myValue 您有几个选择 Using 可枚举 Where https learn microsoft com en us dotnet api sys
  • 我可以使用 SQL Server 2012 Express 来使用 SSDT/BIDS/SSIS 吗?

    理想情况下 我想在我的台式电脑上制作 SSDT SSIS 包 以便我可以测试并将其部署到生产服务器环境 在我的电脑上我有 Windows 7的 视觉工作室2008 Visual Studio 2010 外壳 SQL Server Expre
  • 文件未上传 PHP

    我尝试编写代码以将文件上传到 PHP 中的 media 文件夹 由于某种原因 它仍然不起作用 下面是执行代码 move uploaded file FILES file tmp name media FILES file name or d
  • 如何初始化静态向量成员?

    例如 struct A static vector
  • 如何判断资源是否不受管理?

    我正在使用 Visual Studio 2017 编写 C 应用程序 我努力通过使用 using 语句来处理我实例化的所有对象 如果我实例化的对象不基于可隐式转换为 System IDisposable 的类型 Visual Studio
  • Vim 搜索并突出显示脚本中的控制

    我正在编写一个脚本 我想在其中以编程方式控制搜索 并突出显示它们 search 函数结果没有突出显示 我认为 因此使用该函数对我来说没有用 我想做的是使用 正常 命令来搜索变量 但这似乎并不简单 我可以编写命令 execute normal
  • 在 R 中保存和增量更新最近邻模型

    有几个最近邻 R 包 例如 FNN RANN yaImpute 但它们似乎都不允许保存 NN 数据结构 覆盖树 KD 树等 以便可以计算新查询的最近邻重建整个树 R中有这样的函数吗 我正在寻找一个返回数据结构的函数 当新数据到达时我可以增量
  • mathjax \textsc

    我如何让像 textsc 这样的东西工作 显然有可能启用它这个数学溢出答案 https meta mathoverflow net discussion 1046 why doesnt mathit work 还有其他人找到了至少允许使用小
  • 方向更改时如何更改网格布局

    我正在创建一个win8应用程序 我需要更改网格的布局 以便当用户在方向之间翻转时所有内容都适合屏幕 我明白我需要使用VisualStateManager但我无法理解任何教程 如果我有这个代码
  • PayPal 完整日期格式

    PayPal 以以下格式发回 payment date 字段 19 19 09 Sep 27 2011 我正在使用 php 来计算 payment date 的剩余天数 但我的代码是基于在 2011 09 27 12 19 00 获取格式
  • 如何在 Angular 2 项目中分离管理和前端 Web

    我将使用 Angular 2 构建一个完整的项目 该项目包含管理面板和供用户使用的前端 Web 我不知道如何将管理与网络分开 我应该使用路由吗 但这需要我导入内部的所有组件app module ts或者还有另一种方法可以使用两个app mo
  • 在 Groovy 中使用 JSONBuilder 排除空值

    是否可以使用默认的 JsonBuilder 库在 Groovy 中创建 JSON 值以排除对象的所有空值 例如 Jackson 在 Java 中通过注释类来排除空值所做的事情 一个例子是 userId 25 givenName John f
  • 如何在11g中通过select语句为新创建的表的列设置默认值

    我在 Oracle 11g 中创建一个表 其中一列使用默认值 语法是 create table xyz emp number ename varchar2 100 salary number default 0 这样就创建成功了 由于某些原
  • 为什么重载方法没有被调用?

    我认为被调用的方法是在运行时决定的 或者我错过了什么 示例代码 class Program static void Main string args var magic new MagicClass magic DoStuff new Im
  • 在 Cocoa 中使用 autorelease 的成本是多少?

    大多数苹果文档似乎都避免使用自动释放对象 特别是在创建 gui 视图时 但我想知道使用自动释放对象的成本是多少 UIScrollView timeline UIScrollView alloc initWithFrame CGRectMak
  • exoplayer播放器错误无法连接到hls链接

    我有一个 hls 链接 可以使用 mpv 正常播放 但在 exoplayer 中出现此错误 PlayerError com google android exoplayer2 ExoPlaybackException com google
  • IE 9 和 10 产生意外且不一致的 MediaError

    我们有一组 HTML 块 比如说大约 50 个 它们被迭代地解析并具有Audio动态添加的对象 var SomeAudioWrapper function name this internal player new Audio this i