0

当有人单击按钮时,我希望它播放指定的视频(在移动设备上)。发生的情况是,当有人单击按钮时,我会在客户端进行 AJAX 调用,如下所示:

$(".play").click(function(){
    var camerahash = $(this).data('hash');
    var cameratype = $(this).data('type');
    function doAjax(){
        $.ajax({
            url: 'myfile.php',
            success: function(data) {
                if (data == 'Initializing...')
                {
                    setTimeout(doAjax, 2000);
                }
                else
                {
                    $('#quote p').html(data);

                }

            }
        });

    }
    doAjax();
});

这有这个 div 来向用户打印消息:

<div id="quote"><p> </p></div>

服务器代码(myfile.php):

        $r = new HttpRequest('http://localhost...', HttpRequest::METH_GET);
        $r->send();
        $code = $r->getResponseCode();

        switch($code) {
            case 200:
                echo "Starting Stream...    ";
                echo '<a href="http://blah.m3u8">Play Stream</a>';
                echo '<br>';
                break;
            case 450:
                echo "Oops! Camera not found...";
                echo '<br>';
                break;
            case 550:
                echo "Oops! An error occurred...";
                echo '<br>';
                break;
            case 250:
                echo "Initializing...";
                break;
            default:
                echo "Error 600";
                echo '<br>';
                break;  
        }

这可行,但在按下按钮后,您会得到:Starting stream... Play Stream其中 Play Stream 是您必须单击才能播放视频的链接。我想要的是在单击按钮后立即开始播放视频(并且在服务器上验证了正确的状态代码)。

我根据这篇非常相似的帖子进行了尝试。

但我无法让 json 工作,所以我不能将 url 与重定向一起放置,例如:window.location.href = data.redirect;服务器端redirect的 url 在哪里。有什么想法我可以做的吗?

我应该注意到这是 Joomla,所以服务器代码不是 myfile.php,而是实际上是一个组件 url,但我相信这与这个问题无关。有任何想法吗?

4

1 回答 1

0

实际上,这最终变得非常简单。这篇旧帖子确实指出了正确的方向。

我在客户端拥有我需要的一切,所以我只需要使用重定向window.location

window.location = 'http://myurl.com/playlist.m3u8';

因此,这完美地工作:

$(".play").click(function(){
var camerahash = $(this).data('hash');
var cameratype = $(this).data('type');
function doAjax(){
    $.ajax({
        url: 'myfile.php',
        success: function(data) {
            if (data == 'Initializing...')
            {
                setTimeout(doAjax, 2000);
            }
            else
            {
                $('#quote p').html(data);
                window.location = 'http://myurl.com/playlist.m3u8';

            }

        }
    });

}
doAjax();
});
于 2012-08-27T17:53:34.387 回答