使用fork流式传输视频不会返回内容

时间:2016-03-04 20:31:56

标签: php angularjs ajax video-streaming fork

当我尝试两次请求相同的视频流时,我遇到了某种超时,因此我认为分叉可以解决我的问题。

在开始之前,我使用third party class for video streams。使用我自己的路由系统,这是有效的,但我有上述问题。

/**
 * Proper way to enqueue scripts and styles.
*/
function wp_theme_enque_scripts() {
    wp_enqueue_script( 'script-name', get_template_directory_uri() . '/js/boosting.js', array(), '1.0.0', true );
}
add_action( 'wp_enqueue_scripts', 'wp_theme_enque_scripts' );

尝试使用fork之后,它看起来像这样:

public function stream ($req, $res) {
    $video = c_video_folder . $req->get_param('id') . '.mp4';

    if (file_exists($video)) {
        $res->videoStream($video);
    } else {
        $res->failure(204); // no content
    }
}

发生的问题是响应包中不包含任何数据,除了正确的标题等。有谁知道为什么会这样?

PS。参数$ res,只是另一个类设置标题,然后调用顶部链接的VideoStream类。

1 个答案:

答案 0 :(得分:0)

没有必要开始使用forks和pthread来处理这个问题,即使我这样做也不会解决我的问题。

当我尝试刷新页面时会发生什么,它不会让我直到缓冲完成。

那么如何在html5视频标签中停止缓存? 很简单,你必须暂停视频,缓冲将使你无法刷新页面。

在您开始播放视频以避免进一步出现问题之前停止缓冲区也很重要(例如视频下次无法加载,不幸的是我不知道为什么会这样?)使用Angular.js我通过听取页面刷新解决了这个问题,将音量设置为0(播放时静音),启动视频并暂停播放。 它工作得很好,这就是我做的方式:

angular.element($window).on('beforeunload', function (event) {
        vp.volume = 0;
        vp.play();
        vp.pause();
    });