SilverStripe中的PHP视频流类

SilverStripe中的PHP视频流类,php,mp4,silverstripe,webm,Php,Mp4,Silverstripe,Webm,我正在使用class,它工作得很好。我尝试将其集成到页面控制器中,以防止上传视频。因此,每次加载页面时,视频链接总是在重新加载时更改,没有人可以直接从浏览器URL下载 但是这门课似乎不起作用,我不知道我错过了什么。我还使用该模块将大文件上传到CMS中 你知道如何使用这个课程吗 这是我的密码 注意:我的代码是有效的,我在下面的“我的原始…” PageVideo.ss <video controls preload="auto" id="video1"> <% if $Vi

我正在使用class,它工作得很好。我尝试将其集成到
页面控制器中
,以防止上传视频。因此,每次加载页面时,视频链接总是在重新加载时更改,没有人可以直接从浏览器URL下载

但是这门课似乎不起作用,我不知道我错过了什么。我还使用该模块将大文件上传到CMS中

你知道如何使用这个课程吗

这是我的密码

注意:我的代码是有效的,我在下面的“我的原始…”

PageVideo.ss

<video controls preload="auto" id="video1">
    <% if $VideoMP4 %><source src="id/$Video($VideoMP4.ID)" type="video/mp4"><% end_if %>
    Your browser does not support HTML5 video.
</video>
class PageVideo extends Page {

    private static $has_one = array(
        'VideoMP4' => 'File'
    );

    function getCMSFields() {
        $fields = parent::getCMSFields();

        $fields->addFieldToTab('Root.Video', $uploadField = UploadField::create('VideoMP4'));

        $uploadField->setFolderName('Uploads/videos/');
        $uploadField->getValidator()->allowedExtensions = array('mp4');

        return $fields;
    }
}

class PageVideo_Controller extends Page_Controller {

    private static $allowed_actions = array(
        'VideoStream'
    );

    function VideoStream() {
        if ($this->VideoMP4()->exists()) {
            include 'libraries/VideoStream.php';
            $stream = new VideoStream($this->VideoMP4()->getFullPath());
            return $stream->start();
        }
        return false;
    }
}

这里有一种方法可以做到这一点

课程

<video controls preload="auto" id="video1">
    <% if $VideoMP4 %><source src="id/$Video($VideoMP4.ID)" type="video/mp4"><% end_if %>
    Your browser does not support HTML5 video.
</video>
class PageVideo extends Page {

    private static $has_one = array(
        'VideoMP4' => 'File'
    );

    function getCMSFields() {
        $fields = parent::getCMSFields();

        $fields->addFieldToTab('Root.Video', $uploadField = UploadField::create('VideoMP4'));

        $uploadField->setFolderName('Uploads/videos/');
        $uploadField->getValidator()->allowedExtensions = array('mp4');

        return $fields;
    }
}

class PageVideo_Controller extends Page_Controller {

    private static $allowed_actions = array(
        'VideoStream'
    );

    function VideoStream() {
        if ($this->VideoMP4()->exists()) {
            include 'libraries/VideoStream.php';
            $stream = new VideoStream($this->VideoMP4()->getFullPath());
            return $stream->start();
        }
        return false;
    }
}
模板

<% if $VideoMP4 %>
<video controls preload="auto" id="video1">
    <source src="{$Link}VideoStream" type="video/mp4">
    Your browser does not support HTML5 video.
</video>
<% end_if %>

您的浏览器不支持HTML5视频。

这里有一种方法可以做到这一点

课程

<video controls preload="auto" id="video1">
    <% if $VideoMP4 %><source src="id/$Video($VideoMP4.ID)" type="video/mp4"><% end_if %>
    Your browser does not support HTML5 video.
</video>
class PageVideo extends Page {

    private static $has_one = array(
        'VideoMP4' => 'File'
    );

    function getCMSFields() {
        $fields = parent::getCMSFields();

        $fields->addFieldToTab('Root.Video', $uploadField = UploadField::create('VideoMP4'));

        $uploadField->setFolderName('Uploads/videos/');
        $uploadField->getValidator()->allowedExtensions = array('mp4');

        return $fields;
    }
}

class PageVideo_Controller extends Page_Controller {

    private static $allowed_actions = array(
        'VideoStream'
    );

    function VideoStream() {
        if ($this->VideoMP4()->exists()) {
            include 'libraries/VideoStream.php';
            $stream = new VideoStream($this->VideoMP4()->getFullPath());
            return $stream->start();
        }
        return false;
    }
}
模板

<% if $VideoMP4 %>
<video controls preload="auto" id="video1">
    <source src="{$Link}VideoStream" type="video/mp4">
    Your browser does not support HTML5 video.
</video>
<% end_if %>

您的浏览器不支持HTML5视频。

结果页(视频部分)的源代码是什么?您是否在的src=”“属性上具有预期值?视频源VideoMP4由页面模型中的has_one数组保持。你有使用Silverstripe的经验吗?@3dgoo,谢谢你清理我的英语和代码!你有答案吗?您似乎是Silverstripe编码的大师。结果页(视频部分)的源代码是什么?您是否在的src=”“属性上具有预期值?视频源VideoMP4由页面模型中的has_one数组保持。你有使用Silverstripe的经验吗?@3dgoo,谢谢你清理我的英语和代码!你有答案吗?你似乎是Silverstripe编码的大师。工作起来很有魅力!!!我只需要将$stream变量替换为您的变量$流=新的视频流($this->VideoMP4()->getFullPath());谢谢,非常感谢。我不知道getFullPath()命令。工作起来很有魅力!!!我只需要将$stream变量替换为您的变量$流=新的视频流($this->VideoMP4()->getFullPath());谢谢,非常感谢。我不知道getFullPath()命令。