使用html5时,Firefox为什么将服务器提供的wav曲目的长度设置为6:45:48持续时间

时间:2018-08-07 15:06:45

标签: html5 firefox bootstrap-4 html5-audio

使用html5时,为什么 Firefox 将WAV跟踪servby服务器的长度设置为6:45:48持续时间,即超过6个小时。

当我使用preload = none并将音频作为来自服务器的字节流发送时,就会发生这种情况

<audio controls="controls" preload="none">
            <source src="/fixsongs.play_music?url=E:\TestMusic\TestMusic\WAV\Music\Choir of Trinity College\Carols From Trinity\01 - Wachet Auf.wav">
        </audio>

如果Firefox以本地文件的形式直接访问文件

<audio preload="none" controls="controls">
            <source src="file:/E:/TestMusic/TestMusic/WAV/Music/Choir%20of%20Trinity%20College/Carols%20From%20Trinity/01%20-%20Wachet%20Auf.wav">
    </audio>

它显示正确的长度。

请注意,在两种情况下它实际上都可以播放文件,但是为什么它不能显示正确的长度或至少选择一个更好的默认值。

我尝试过使用 Windows Edge ,并且工作正常,开始播放需要一些时间,但显示正确的持续时间。

我尝试过使用 Google Chrome ,这也可以通过避免问题并且不显示长度来实现

我尝试使用Mp3而不是Wavs,并且在 Firefox 上还可以。

是否可以解决此问题,或者可以隐藏持续时间位(就像Chrome在开始播放时一样)

修改

正如Albert所建议的那样,我已经设置了预加载和控件的顺序,并且具有音频的模仿性,但这没什么区别。

 <audio preload="none" controls="controls">
            <source type="audio/wav" src="/fixsongs.play_music?url=E:\TestMusic\TestMusic\WAV\Music\David Ferrard\Across The Troubled Wave\13 - Hard Times Come Again No More.WAV">
        </audio>

但是我不清楚我是否在服务器上做过什么,我看不到如何设置响应的模仿类型,因为我只是以一系列字节的形式返回文件的内容。

这里是一个例子:

页面首次加载时间显示为0:00(因为我的预加载设置为none),但是当您单击每个文件播放时,时间更改为6:45:48,所有歌曲均会正确播放,但显示的是总时间错了。

enter image description here

1 个答案:

答案 0 :(得分:1)

通过在bugzilla上快速搜索,我发现这是一个已知错误报告的here。错误报告带有this附件,如果您在Firefox中打开它,您会看到右侧的播放器显示的时间与问题中发布的时间完全相同。但是,播放文件后,重新加载页面后问题就消失了,除非您清除历史记录,否则在下次重新加载页面时会出现问题。

要解决此问题,请确保在提供wav文件时从服务器发送内容长度标头。