1

サイトにアクセスしたユーザーのビデオ ビューの秒数を取得する方法をたくさん検索しました。ビデオページにはYouTubeビデオが埋め込まれており、Facebookに投稿するには秒数のビューが必要です。ルールは次のように述べています。

ユーザーが動画の 50% 以上を視聴したが、最後まで再生しなかった場合は、アクション インスタンスを更新して、ユーザーが視聴を停止したことを反映する必要があります。 /developers.facebook.com/docs/opengraph/guides/video.watches/

これまでのところ、即興で次のコードを作成しました。ユーザーがビデオの開始を押すと、カウンターが開始されます。問題はコードのコメントにあります。

function stopCycle(event) {
    switch( event.data ) {
//event.data can be 1 or 2 . If user press play is event.data = 1 and if press
pause event.data = 2 and again if press play will be case 1. So each time
when user press START - PAUSE - CONTINUE - PAUSE event.data will have the value
        case 1:
// here i post on facebook after 10 seconds as rules said
            setTimeout('postwatch()', 10000);


//i get with ajax from youtube the video time (in seconds)
            $.ajax({
            url: "http://gdata.youtube.com/feeds/api/videos/<?php echo get_post_meta(get_the_ID(), 'tj_video_id_url', TRUE); ?>?alt=json",
            dataType: "jsonp",
            success: function (data) {
//here I appeal the ontimer function but the bug is that every tine i press play button even and after pause get appeal and the counter got crazy
                onTimer(data.entry.media$group.yt$duration.seconds);
            }
            });

        break;
        }
            console.log("onStateChange has fired!\nNew state:" );

}

i = 0;
function onTimer(videotime) {
  document.getElementById('mycounter').innerHTML = i;
  i++;
  if (i > videotime) {
    alert('Finish!');
  }
  else {
    setTimeout(onTimer, 1000);
  }
}

別の方法を知っていますか、それとも正しい方法で答えてくれますか?

4

1 に答える 1