2

ユーザーが動画を投稿できる webapp があります。誰かが再生ボタンをクリックするたびにカウンターが+1を追加するように、再生カウントを記録できるかどうか疑問に思っていました。

私は現在 auto_html を使用して埋め込みを行っています:

   <% if micropost.url.include? 'youtu' %>
      <%= auto_html(micropost.url) {youtube(:width => 550, :height => 190)}   %>
   <% end %>

   <% if micropost.url.include? 'soundcloud' %>
     <%= auto_html(micropost.url) {soundcloud}  %>
   <% end %>

Youtube の場合、埋め込みビデオの任意の場所をクリックすると記録する必要があり、Soundcloud の場合は、再生ボタンをクリックすると再生する必要があります。これはどのように行うことができますか?ご意見をお待ちしております。

YouTube での動画の再生回数は知りたくないので、自分のウェブサイトで誰かが何回再生したか知りたいです。

4

1 に答える 1

2

. . YouTube API (「ビデオ エントリ」)は、この情報をより信頼できる方法で提供するため、自分で保存する必要はありません。「entry->yt:statistics->viewCount」情報を取得するだけです。

. . ビデオの再生を開始したときに「viewCount」が増加するのではなく、しばらくすると増加することに注意してください。正確な量は覚えていませんが、ビデオの 75% 程度を視聴したときだと思います。

. . 編集してここに置くだけで、Googleを通過する人なら誰でも取得できます。

. . 何らかの理由でサーバーに保存する必要がある場合は、Youtube JavaScript API を使用して、ビデオの再生が開始されたときに発生するイベントを取得できます (「onStateChange」イベントの値が「1」であることを確認してください。実際にプレイを開始します)。SoundCloud には、そのための Widget API イベントもあります: "onMediaStart"

. . 次に、サーバーに情報を保存するために Ajax 呼び出しを行うことができます。

var MEDIA_ID = 1; //your internal's media ID;
function checkPlayerState(newState) { if (newState === 1) { incrementCount(); } }
function incrementCount() { $.post('inc.php', {mediaid: MEDIA_ID}); }

soundcloud.addEventListener('onMediaStart', incrementCount);
ytplayer.addEventListener('onStateChange', checkPlayerState);
于 2013-03-01T04:03:15.247 に答える