ラベル Movie の投稿を表示しています。 すべての投稿を表示
ラベル Movie の投稿を表示しています。 すべての投稿を表示

2013/09/09

[js] Youtubeプレイヤーのクリックイベント登録

あるミュージシャンのサイトでsoundManagerを使って音楽を再生できるようにした。
ページによってはYouTubeが貼られてあるページがあって、YouTubeを再生する時にはBGMは停止することになった。

iPadやらも対象になっているのでYouTubeはiframeで埋め込んでる。
当然iframe内はYouTubeのドメインになっているので、JavaScriptで中を覗くことも、プレイヤーにクリックイベントを登録することもできない。
do ->
 # iframeがひとつしかない状態でしか確認してないので、複数ある場合は要注意
 $iframes = $('iframe')
 $ytFrames = $iframes.filter ->
  # facebookのiframeなどもあるのでsrcをチェック
  if this.src.indexOf 'youtube.com' != -1
   srcParts = this.src.split '/'
   id = srcParts.pop().split('?')[0]
   # YoutubeのAPIで使用するので、動画IDを保存しておく
   this.setAttribute 'data-movieid', id
   # iframeを作り変えるので、その格納用divを作成&挿入
   $(this).after '
' return true # youtubeのiframeがなければやめる if $ytFrames.size() == 0 return # 後々取得しやすいyにクラス名追加 $ytFrames.addClass 'js-yt-frame' # ここはドキュメントに書いてあった。iframeのAPIを使用するために必要なscriptを読み込む tag = d.createElement 'script' tag.src = 'https://www.youtube.com/iframe_api' $('head').append tag # scriptが読み込まれると、この名前の関数が呼ばれる @onYouTubeIframeAPIReady = -> # 判別用につけたクラス名で取得 $ytFrames = $('.js-yt-frame') $ytFrames.each -> $this = $(this) # 既存のiframeを新しく作るものと置き換えるので一旦非表示 $this.hide() frame = this movieId = frame.getAttribute 'data-movieid' # APIにあるオブジェクトをnew。これでiframeが作られる player = new YT.Player 'ytframe-' + movieId, # 幅・高さともに200px以上ないと再生できないので、最低値を設定 width: Math.max(frame.getAttribute('width'), 200) height: Math.max(frame.getAttribute('height'), 200) videoId: movieId events: onReady: (e)-> # もともとあったiframeを削除 $this.remove() onStateChange: (e)-> # クリックイベント登録 if e.data == YT.PlayerState.PLAYING # 動画が再生状態になった場合の処理 # 今回はここでsoundManagerを止めた。 # もちろん停止状態になったら…とかも可能
参考サイト: YouTube Player API Reference for iframe Embeds(英語)

2012/07/09

YouTubeのAPIで特定の動画の情報を取得する


YouTubeのAPIのドキュメントを見てると、人気の動画を**件出す、とか関連してる動画を出すとか書いてあるんだけど、いやいや特定の1件だけほしいのよって時があるのでメモ。

やり方は簡単
http://gdata.youtube.com/feeds/api/videos/動画のID
のデータを取得するだけ。

http://gdata.youtube.com/feeds/api/videos/動画のID?alt=json
にすれば、JSON形式で返してくれる。

2011/09/28

スケートボードもった選挙ポスター。選挙も滑りましたってか!



・スケートと選挙ポスターというミスマッチさ・意外性。意外性のあるものは目を引く

・スケートボードメーカーが会社としてやってるってのはびっくり。反発も考えるとリスキーだと思ったが、そもそも会社のターゲットは社会の良識派じゃないか。

・若者たちに選挙への興味を持たせるためじゃなくて、自分の会社へ興味を持たせたいんだよな。
そりゃ、スーツ姿のおじさんおばさんがボード持ってたら、スケーターは興味持つよな。

・スケーターの価値観ってのは具体的に知らんが、社会のアウトサイド側ってことで考えると、大人で、真面目くさった嘘つき達を相手にふざけるってとこが「クールだぜっ」って思わせられるんじゃないんかな

「うんうん、意外性を持たせることで興味を引けるんだな、わかった!」なんてタマキンみたいなしたり顔してましたが、じゃあ具体的にやってみろよって言われると、タマキンみたいな案しかでてこないっすね。
この人らはなんで意外性をもたせるやり方を選んだんかな。
うーん…面白いから…?

参考:
“選挙ポスター”を利用したスケボーメーカーのゲリラ広告