0

我正在使用 jPlayer 在我的页面中嵌入两个音频文件,基本上代码是从该页面剪切'n'粘贴的。一个是wav,另一个是mp3。在本地(mac)上一切正常,但是当我将它上传到服务器时,音频文件以奇怪的方式失败。

Chrome 会在 30 秒后启动 wav 文件——即使位置清理器从头开始——并提前结束,所以我怀疑 javascript 无论如何都会获得正确的声音文件长度。mp3 甚至从未开始播放。它假装加载,但事实并非如此。

Safari 工作正常,不知何故。

Firefox 也可以正常运行。也许是因为它依赖于玩家的闪光选项?

IE8 播放 mp3,但不播放 wav,并且无法显示前者的进度条。

起初我认为这是我如何上传文件的问题。最初我使用了 Transmit,它应该对 ascii 与二进制比较明智。我试着scping 文件,但他们仍然表现得很糟糕。

我当时想可能是 mime 类型设置不正确,所以我在资产文件夹中的 .htaccess 文件中添加了两行,但这并没有改变。这是 htaccess 文件的样子,也许我忘记了一些我还需要包含的内容?

# prevent CGI and PHP executing in assets; php_flag doesn't actually do anything
# since lower-level settings trump any attempt to turn it off in htaccess.
# I'll leave it here for posterity.
deny from all
Options -ExecCGI
php_flag engine 0 

# Break other files
<Files ~ "\.(gif|GIF|jpe?g|JPE?G|png|PNG|docx?|DOCX?|pdf|PDF|swf|SWF|flv|FLV|ppt|PPT|pps|PPS|mp3|MP3|wav|WAV)$">
order deny,allow
allow from all
</Files>

AddType audio/x-wav wav
AddType audio/mpeg mp3 

想法?

编辑:我尝试将 wav 和 mp3 的 mime 类型更改为 application/octet-stream,但这似乎对播放器应用程序没有任何作用;如果我直接链接到音频文件,它会下载它们。

4

1 回答 1

0

好的,所以有很多问题。第一个是,您正在流式传输 WAV 文件。虽然我知道并非所有 HTML5 播放器都能处理 MP3,但您应该真正考虑 MP3。

第二个问题是您的播放器有错误。进度条假定音频停止时仍在播放。它只会在音频再次开始播放时自行纠正。帮自己一个忙,使用一个简单的基于 Flash 的 MP3 播放器。我知道这是亵渎神明,但在这一点上,你真的会有更多的用户可以使用它,而且 MP3 保证可以工作。

第三个问题是您的 ISP 缺乏带宽。我现在正坐在一个非常大的管道上,下载你的 4MB WAV 文件花了 1:51。我还在第二次连接上对其进行了测试。WAV 是未压缩的,会占用大量带宽。

第四,您的网络服务器不太喜欢范围,而且您的音频播放器也没有发出正确的范围请求。它正在请求文件的最后一个字节,而您的 Web 服务器根本没有返回任何错误,只是关闭了连接。也许这是预期的行为,我不确定,但我对此表示怀疑。

我非常有信心,如果您使用众多基于 Flash 的音频播放器之一,并使用 MP3,您的麻烦就会消失。

于 2011-03-14T19:01:29.023 回答