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

When using html5 why does Firefox set length of wav tracks served by server as 6:45:48 duration

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

当我使用 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 - 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,这也可以通过回避问题而不显示长度

我尝试使用 Mp3s 而不是 Wavs,这在 Firefox 上没问题。

有没有办法解决这个问题,或者有没有办法隐藏持续时间位(就像 Chrome 在开始播放时所做的那样)

编辑

按照 Albert 的建议,我设置了预加载和控件的顺序,并设置了音频的 mimetype,但没有任何区别。

 <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 - Hard Times Come Again No More.WAV">
        </audio>

但我不清楚我是否在服务器上做了一些事情,我不知道如何设置响应的 mimetype,因为我只是将文件的内容作为一系列字节返回。

这是一个例子:

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

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

要解决此问题,请确保在提供 wav 文件时从服务器发送 content-length header。