IE MP3流媒体。适用于Firefox,但不适用于IE和Chrome。标头问题

时间:2011-06-23 16:54:00

标签: php javascript flash

我在IE和Chrome中播放MP3时遇到了一些问题(在Firefox中运行正常)

我们有一个语音信箱服务器。 Web应用程序通过将其转换为MP3来流式传输wav文件(使用蹩脚,不是很好,但我们必须这样做,因为星号的限制),然后将内容输出为二进制流。

header("Content-Type: audio/mpeg");
header("Content-Transfer-Encoding: binary");    
header('X-Pad: avoid browser bug');
header('Cache-Control: no-cache');    
$file->readFromInbox($f);

我们使用的MP3音频播放器是:http://wpaudioplayer.com/standalone/

如果文件(我认为)的大小小于100k,则音频流正常并且MP3闪光音频播放器状态栏会更新(秒数会上升,并且条形移动)。

但是,如果文件大于100k,则存在问题。音频在IE7 / 8和Chrome中播放,但状态栏不会改变。即使正在播放音频,它仍继续说“正在连接...”。奇

在Firefox中,我没有问题。

可能是什么问题?为什么firefox没有任何问题,但IE和Chrome?我是否需要指定要流式传输的文件的大小? (这是不可能的,因为文件正在被动转换并且由于passthru命令而被直接输出)

谢谢你们!

1 个答案:

答案 0 :(得分:0)

首先转换文件并将其存储为临时文件。然后将该文件与Content-Length标头一起发送。

使用以下命令创建临时文件:

$tempfile = tempnam('/tmp','mp3')