문제

저는 Hulu.com(가장 최고의 스트리밍 비디오 사이트인 btw)에서 TV 쇼를 보고 있는데, 브라우저를 닫고, 인터넷 연결을 끊고, 시청 중에 컴퓨터를 다시 시작해도 마찬가지입니다. 다음번에 해당 사이트에 방문하면 쇼를 중단한 시점부터 정확히 TV를 다시 시작할 수 있습니다.

내 질문은 상세한 웹 프로그래밍 관점에서 나온 것입니다. 어떻게 이를 달성할 수 있습니까?컴퓨터를 다시 시작하면 세션이 작동하지 않을 것이라고 생각하기 때문에 세션을 사용하지 않는다고 가정합니다.쿠키를 사용하는 경우 쇼에서 사용자의 위치로 쿠키를 지속적으로 업데이트하려면 어떻게 해야 합니까?

첨부된 포상금을 받으려면 쿠키를 생성하는 방법에 대한 코드 예제와 업데이트된 뷰어 위치를 허용하는 서버 측 코드 조각을 Java/JSP(PHP도 괜찮음)로 포함시키십시오.

감사해요!

도움이 되었습니까?

해결책

한 가지 간단한 방법은 플레이어가 JavaScript를 통해 쿠키를 업데이트할 수 있고 JavaScript 함수가 매 번 호출될 수 있다는 것입니다. N Flash Player의 초:

<script type="text/javascript">
    function UpdateViewData(videoId, time)
    {
        //for a video with id 12345, sets a cookie called:
        //hulu12345 with a value of the position
        var cookieData = 'hulu' + videoId + '=' + time + '; expires=' + getDate() + ';path=/';
        document.cookie = cookieData;
    }
</script>

Flash 플레이어에서 ActionScript는 JavaScript를 자주 호출하여 쿠키가 마지막으로 설정되었을 때 플레이어의 위치를 ​​상당히 정확하게 업데이트할 수 있습니다.호출될 때마다 업데이트된 데이터로 쿠키를 덮어씁니다.

import flash.external.ExternalInterface;

//in flash video player code,
//have variables for video ID and current player position
//every 5 seconds, call:
ExternalInterface.call("UpdateViewData", videoId, currentPlayerPosition);

//this will invoke a JS function on the host page named "UpdateViewData"
//and pass in the provided arguments

페이지를 다시 방문하면 서버가 가장 먼저 하는 일은 "hulu{동영상 ID}"라는 쿠키가 있는지 확인하는 것입니다. 그렇다면 해당 쿠키의 값은 마지막으로 봤을 때 설정된 위치입니다.

다시 말하지만(처음에 언급한 대로) 이는 요청한 내용을 수행하는 매우 간단한 방법입니다.나는 가장 좋은 학습 방법은 간단한 구현을 진행한 다음 더 간단한 사례가 잘 이해되면 복잡성을 추가하는 것이라고 생각합니다.Hulu는 AJAX를 사용하여 백그라운드에서 정기적인 업데이트를 수행할 가능성이 높습니다.(실제로 다음과 같은 것을 사용하여 동영상을 보면서 순 트래픽을 보면 개똥 벌레, 가끔 다음으로 전화가 걸려오는 것을 볼 수 있습니다. http://t2.hulu.com/v3/playback/position?...).

다른 팁

Flash에는 쿠키와 유사한 자체 메커니즘이 있습니다. 로컬 공유 객체.

일부가 있습니다 코드 예제는 여기.나는 Hulu가 LSO를 생성하고 영화 속 위치로 주기적으로 업데이트한다고 상상합니다.다음에 영화가 로드되면 LSO를 가져와 위치를 복원할 수 있습니다.또는 고유 ID를 저장하고 위치를 서버 측에 저장할 수도 있습니다.

레코드 ID가 포함된 쿠키를 작성한 다음 세션이 종료되었을 때 있었던 위치를 서버에 저장할 수 있습니다.클라이언트가 "예, T 시간까지 플레이했습니다"라는 응답을 자주 보내도록 함으로써 사용자가 어디에 있는지 알 수 있습니다.

그런 다음 귀하가 돌아오면 그들은 쿠키의 레코드 ID를 사용하여 귀하가 있었던 데이터베이스를 조회합니다.연결을 어떻게 끊든 상관없이 그들은 여전히 ​​연결이 끊어졌다는 것을 알고 있습니다.

나는 단지 추측하고 있지만 아마도 서버 측에 위치를 저장하는 것 같습니다.시청을 다시 시작하면 마지막으로 기록된 위치가 타임스탬프의 재개로 전송됩니다.

당신이 보고 있는 페이지는 때때로 상태 패킷을 서버로 다시 보내 현재 타임스탬프를 알려줍니다.연결이 끊어지면 마지막으로 기록된 값이 사용됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top