我们运行一个IIS 7服务器,托管一个播放10-20秒短片的网站。我们为玩家使用的代码是:
<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盒子并没有在物理上挣扎,而且这个站点是唯一的一个。以下是可能有用的环境变量列表。
非常感谢任何帮助或正确方向的观点。
谢谢!
答案 0 :(得分:0)
我们已经做了几件事来尝试解决这个问题。我们将部分媒体移动到aws s3存储桶并重构了一些代码。
基本上,我们通过ID和标记引用向音频元素添加侦听器,并且这些侦听器都是从两个不同的位置调用的。在我们整合代码以保留在外部js文件中,并将所有侦听器设置在从ajax页面调用的函数中之后,事情似乎开始变得有效。
我们仍然看到一些(很少)IE9 +的问题,但有一个错误监听器监视这个。每次用户报告错误时,错误监听器都会报告状态代码4(MEDIA_ERR_SRC_NOT_SUPPORTED),这是奇数。
所以,问题大多是固定的。现在要跟踪IE的错误代码4(即使所有文件最终将通过它播放)。也许它与安装在负责MP3播放的机器上的媒体播放器有关?