我们运行一个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框实际上并没有出现问题,并且该站点是唯一的站点。以下是有关可能会帮助环境的变量列表。
任何帮助或朝着正确方向的观点将不胜感激。
谢谢!
最佳答案
我们已经做了几件事来尝试解决这个问题。我们将部分媒体移至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/