【问题标题】:PHP served video display on Apple productsPHP 在 Apple 产品上提供视频显示
【发布时间】:2017-09-24 17:03:09
【问题描述】:

我正在尝试在我的 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;
}
}

【问题讨论】:

    标签: php ios iphone html


    【解决方案1】:

    如果实际上是范围标头问题,则有一个 github 项目,其中包含解决 Safari/Mac 的此问题的代码示例:

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

    【讨论】:

      猜你喜欢
      • 2017-02-06
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 2018-09-11
      • 2011-06-09
      • 1970-01-01
      • 2020-09-28
      相关资源
      最近更新 更多