いつもお世話になっております。
現在RailsでWebページを作成しております。
現在、Railsでtwitterのようなもの作っており、
kaminari+jsqrollを用いて、画面の下に行くたびに、次の表示をデータベースからとってきて表示を繰り返しています。
それぞれの投稿の中には必ず動画ファイルが含まれており、それが再生された場合に、その投稿の動画が再生されたことをデータベースに書き込みたい状況です(javascriptでajaxで実行する予定です)。
まず大前提として、この再生したこと検知する方法はyoutube APIを使用しないと不可能でしょうか。
他の方法があるならばご教示いただけますと幸いです。
APIが必ず必要な場合なのですが、動画が複数ある時、APIを用いて判定する場合は下記サイトのような方法があることは分かったのですが、どのやりかたも初めから入ってくる動画のアドレスが分かっている書きかたをしております。
参考サイト
http://cly7796.net/wp/javascript/multiple-installation-in-youtube-player-api/
javascript
1 2// 以下のように固定された書きかたをしている 3// onYouTubeIframeAPIReadyの中が動的に変わっていく必要があるので 4// どのようにすればよいのかが分からない状況です 5 6プレーヤーの格納 7 var ytPlayer = []; 8 // プレーヤーのサイズ 9 var ytWidth = 560; 10 var ytHeight = 315; 11 // 各動画情報 12 var ytData = [ 13 { 14 id: 'vTyalZzGqus', 15 area: 'player_17' 16 }, { 17 id: 'aVUlFXBazL8', 18 area: 'player_16' 19 }, { 20 id: 'TKFB7jisnnU', 21 area: 'player_15' 22 }, { 23 id: 'MGnM-4JAcR8', 24 area: 'player_14' 25 } 26 ]; 27 28 // 各プレーヤーの埋め込み 29 function onYouTubeIframeAPIReady() { 30 for(var i = 0; i < ytData.length; i++) { 31 ytPlayer[i] = new YT.Player(ytData[i]['area'], { 32 width: ytWidth, 33 height: ytHeight, 34 videoId: ytData[i]['id'], 35 playerVars: { 36 rel: 0 37 }, 38 events: { 39 'onReady': onPlayerReady, 40 'onStateChange': onPlayerStateChange 41 } 42 }); 43 } 44 } 45
ruby
1 2# 以下のようにkaminariでページネーションしており下にスクロールされるたびに 3# プレイヤーのidが変更されてしまう 4 5コントローラー側 6@user = User.all 7 8view側 9<ul class="skill-list jscroll"> 10 <% @users.each do |user| %> 11 <div id="player_<%= user.id %>"></div> 12 <% end %> 13 <%= paginate @users %> 14</ul> 15
jsqrollを使用しているため、下に行くたびに、新しく動画のアドレスが呼ばれるような場合にどのように記述したらよいかが分からずこちらに質問させていただきました。
参考になるサイトでも構いませんので、適切な方法をご教示いただけますと幸いです。
よろしくお願いいたします。
環境
Amazon Linux release 2 (Karoo)
Rails 5.2.3
Ruby version: 2.6.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。