2

我有一个允许用户发布视频的网络应用程序。我想知道是否可以记录播放次数,以便每次有人单击播放按钮时,计数器都会增加 +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% 的视频或其他内容时。

. . 编辑只是把它放在这里,这样任何通过谷歌的人都会得到它。

. . 如果您出于某种原因需要将其保存在您的服务器上,您可以使用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 回答