html - 为什么有些客户端不能从IIS播放一些html5音频?

标签 html iis audio mp3

我们运行一个IIS 7服务器,该服务器托管一个播放10-20秒短MP3的站点。我们用于播放器的代码是:

<audio autoplay="autoplay" controls id="audio_player" preload="auto"  >
<source id="mp3_src" src="path_to_mp3/clip.mp3" type="audio/mpeg">
<source id="ogg_src" src="path_to_ogg/clip.ogg" type="audio/ogg">
<!-- BEGIN fallback -->  
<object type="application/x-shockwave-flash" data="/flash_mp3_player.swf" width="340" height="50">
<param name="movie" value="/flash_mp3_player.swf" />
<param name="wmode" value="transparent" />
<param name="flashvars" value="filename=path_to_mp3/clip.mp3;autostart=true" />
<embed href="html5-mp3player.swf" width="340" height="50" name="player" align="" type="application/x-shockwave-flash" flashvars="filename=path_to_mp3/clip.mp3;autostart=true"/>
</object>
<!-- END fallback -->  

对于大多数用户来说,这不是问题。我们每隔几分钟提供并播放约50个剪辑,并且用户几乎在您期望的每个主要平台上(Win XP-8,OS X 10.4 +,iOS 5 +,Android 2+等)。

最近,随着工作量的增加,我们看到很多人说剪辑不是为他们播放的。大多数时候,我们没有听到具体的错误,但是当我们这样做时,IE9 +几乎总是报告“错误:未知的文件类型或无效的文件路径”。

在这一点上,我们很困惑。 IIS框实际上并没有出现问题,并且该站点是唯一的站点。以下是有关可能会帮助环境的变量列表。
  • 具有IIS 7的Windows Server 2008
  • MIME类型已正确配置
  • MP3剪辑位于虚拟目录中,尽管其中一些位于服务器本身。两个位置都无法播放
  • 对于客户端
  • 播放失败,IIS不会记录任何错误
  • 这在白天和晚上的所有时间都发生
  • 这似乎是随机发生的,包含超过200,000个不同文件
  • 所有MP3都以128kbps @ 44100编码
  • HTML5和Flash部分都容易出现故障
  • 通常,请求为206,尽管看到200条响应并不罕见
  • 该站点设置了1个应用程序池,并配置为仅使用1个工作进程
  • 无论是通过
  • 服务该站点的网络上还是网络外,我们都无法再现该错误。
  • 通常,用户可以刷新(多次)并通过
  • 实际获取和播放剪辑

    任何帮助或朝着正确方向的观点将不胜感激。

    谢谢!

    最佳答案

    我们已经做了几件事来尝试解决这个问题。我们将部分媒体移至aws s3存储桶,并重构了一些代码。

    本质上,我们是通过ID和标记引用将侦听器添加到音频元素,并且它们都是从两个不同的位置调用的。在我们合并了代码以保留在外部js文件中,并在从ajax页面调用的函数中设置了所有侦听器之后,事情似乎开始解决。

    我们仍然看到IE9 +的一些(很少)问题,但是有一个错误监听器对此进行监视。每次用户报告错误,错误侦听器都会报告状态码4(MEDIA_ERR_SRC_NOT_SUPPORTED),这是奇数。

    因此,问题基本上是固定的。现在查找IE的错误代码4(即使所有文件最终都将通过它播放)。也许这与负责MP3播放的计算机上安装的媒体播放器有关?

    关于html - 为什么有些客户端不能从IIS播放一些html5音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20247845/

    相关文章:

    jQuery,CSS : Two divs, 如何使它们 "show"彼此相邻?

    javascript - 仅当屏幕超过一定尺寸时才加载 nivo 型 slider

    asp.net-mvc - IIS 8.x 虚拟目录上的 Angular 应用程序具有奇怪的 URL 行为

    wcf - 从 Web 应用程序调用时自托管 WCF 服务中的线程标识

    iis - 如何在 IIS 7 上的经典 ASP 中启用大文件上传?

    react-native - 无法从 “expo-av”解析 “screens/HomeScreen.js”

    block 中的 HTML/CSS 子菜单

    html - Bootstrap 4-切换导航栏在所有内容后面打开

    audio - 音频文件的静音(清零)部分

    android - 从设备内存而不是 Assets 中读取音频文件