質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

YouTube API

YouTube APIはYouTubeのビデオコンテンツと機能性をウェブサイト、アプリケーション、デバイスに統合することを可能にします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

860閲覧

Rails jsqrollを用いて複数の埋め込みyoutubeを表示し、再生をトリガーにjavascriptで処理を行う

lyzmfeqpxs54

総合スコア237

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

YouTube API

YouTube APIはYouTubeのビデオコンテンツと機能性をウェブサイト、アプリケーション、デバイスに統合することを可能にします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

2クリップ

投稿2020/03/18 05:15

編集2020/03/22 07:11

いつもお世話になっております。
現在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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

最初に
<img src="http://i.ytimg.com/vi/[youtubeID]/maxresdefault.jpg" alt="" data-video="YouTube ID">
のような形で動画のサムネイル画像を表示し、その画像がクリックされたらyoutubeの再生を行う形にし、そのタイミングでjavascriptを行うことで、要件を満たす動きができました。

投稿2020/03/27 04:55

lyzmfeqpxs54

総合スコア237

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問