2013-05-17 84 views
3

我正在尝试开发HTML5游戏。为此,我在本地机器上运行PHP内置服务器,然后“编译”它(合并/缩小JS文件,缩小CSS等),并将它们上传到生产服务器。Chrome中的音频问题

我遇到了音效问题。出于某种原因,Chrome无法识别它已达到声音的结尾,因此会陷入“缓冲”状态。尽管有效的Content-Length标题。 IE和Firefox似乎没有这个问题。它也会影响loop属性,并且它也无法触发ended事件。

这些问题只出现在PHP内置服务器上。它在生产中工作正常。我错过了什么?


编辑:这里的PHP服务器上的示例请求/响应:

GET /bin/aud/rightwhereiwantyou.mp3 HTTP/1.1 
Host: 10.0.0.110:8000 
Connection: keep-alive 
Accept-Encoding: identity;q=1, *;q=0 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 
Accept: */* 
Referer: http://10.0.0.110:8000/snake.php 
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 
Range: bytes=0- 

HTTP/1.1 200 OK 
Host: 10.0.0.110:8000 
Connection: close 
X-Powered-By: PHP/5.4.13 
Content-Type: audio/mpeg 
Content-Length: 1685058 
+0

你可以显示数据包跟踪吗?我怀疑你错过了一个Content-Type头,或者遇到范围请求有问题。 – Brad

+0

请参阅编辑,我已添加示例请求/响应。 –

+0

嗯,这与有效的区别是什么? – Brad

回答

0

我的野生的猜测是,Chrome正在接受部分内容响应(一个字节范围),由于MP3文件可能很大,你可能想要流式传输。

您是否曾尝试将Accept-RangesContent-Range标题添加到您的回复中?例如,请参阅this问题的答案。

0

这似乎是一个known bug谷歌浏览器。