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;サーバー側のどこにredirectURLがありますか。代わりに私ができることはありますか?

これは 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 に答える