我试图在Mac上播放视频,然后打电话,但无法正常工作。我的视频由php提供,我一直在阅读,这与未发送范围标头有关,但我不知道如何正确执行。
这是我到目前为止的内容:

HTML:

<video controls="true" autoplay muted loop>
<source src="http://my_site.com/video/394934" type="video/mp4">
</video>


PHP:

// Get file GUID
$file_guid = (int) get_input('file_guid', 0);

// Get file thumbnail size
$size = get_input('size', 'small');

$file = get_entity($file_guid);
if (!elgg_instanceof($file, 'object', 'file')) {
    exit;
}

$simpletype = $file->simpletype;
if ($simpletype == "image") {

// Get file thumbnail
switch ($size) {
    case "small":
        $thumbfile = $file->thumbnail;
        break;
    case "medium":
        $thumbfile = $file->smallthumb;
        break;
    case "large":
    default:
        $thumbfile = $file->largethumb;
        break;
}

// Grab the file
if ($thumbfile && !empty($thumbfile)) {
    $readfile = new ElggFile();
    $readfile->owner_guid = $file->owner_guid;
    $readfile->setFilename($thumbfile);
    $mime = $file->getMimeType();
    $contents = $readfile->grabFile();

    // caching images for 10 days
    header("Content-type: $mime");
    header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', strtotime("+10 days")), true);
    header("Pragma: public", true);
    header("Cache-Control: public", true);
    header("Content-Length: " . strlen($contents));

    echo $contents;
    exit;
}
}

最佳答案

如果实际上是范围标头问题,那么有一个github项目带有一个代码示例,可解决Safari / Mac的此问题:

https://gist.github.com/codler/3906826

07-26 09:38
查看更多