jPlayer - Safari在播放时没有收到标题 - 无法正确缓冲

时间:2012-05-15 19:39:13

标签: php safari jplayer

我正在使用jPlayer播放媒体,我也使用PHP下载脚本将内容传递给jPlayer。

我遇到Safari的问题,因为音频无法正确缓冲。最初认为这是一个Accept-Ranges问题,我确保传递正确的标题。

在Firefox中,如下面的屏幕截图所示,标题可以很好地传递,并且一切都按照我的预期运行。

http://img171.imageshack.us/img171/5706/ff1z.png

然而,在Safari中,当我点击播放时会发生以下情况:

http://img138.imageshack.us/img138/161/safari2.png

正如您所看到的那样,它称为下载脚本,但状态仍处于暂挂状态且不会更改。奇怪的是,音频播放得很好。

在查看收到的标题后,它进一步困扰我,因为它似乎没有发送标题:

http://img805.imageshack.us/img805/8411/safari1.png

这些是我从下载脚本发送的标题,省略了一些内容:

...

header("Content-Type: ".$mimeTypes[$ext]);
header('Content-Disposition: attachment; filename="Test - '.$_GET[title].'.mp3"');
header('Accept-Ranges: bytes');
$begin  = 0;
$end    = $fsize - 1;

if (preg_match('/bytes=\h*(\d+)-(\d*)[\D.*]?/i', $_SERVER['HTTP_RANGE'], $matches))
{
    $begin  = intval($matches[1]);
    if (!empty($matches[2]))
    {
        $end    = intval($matches[2]);
    }
}

header('Content-Length:' . (($end - $begin) + 1));
header("Content-Range: bytes $begin-$end/$fsize");

将jvlayer发送到jPlayer的javascript是:

    $("#jquery_jplayer_1").jPlayer("setMedia", { mp3: "/download.php?track=" + id });
    $("#jquery_jplayer_1").jPlayer("play");

如果有人能指出我正确的方向,我是否错过了Safari要求的一些重要的标题信息 - 或者......?

非常感谢。

0 个答案:

没有答案