このページの本文へ

NimbleKitでiPhone用動画アプリを自作しよう (2/4)

2011年06月30日 11時00分更新

文●古籏一浩

  • この記事をはてなブックマークに追加
本文印刷

サムネイル画像をタッチしたら動画を再生

 サンプル1は特定の動画を再生するだけのシンプルなものでした。これではあまり面白くありませんので、複数の動画のサムネイルをページ上に表示し、タップ操作で選択された動画を再生するように変更します。

 まず、動画のサムネイル画像を用意します。サムネイル画像は以下のようにimg要素で指定します。このとき、プログラムの処理を簡単にするために、img要素のtitle属性に再生する動画のファイル名を指定しておきます。

<div id="thumb">
<img src="thumb/atera.jpg" title="atera.mov">
<img src="thumb/fireworks.jpg" title="fireworks.mov">
     :
</div>

 この方法はHTML側で再生する動画を指定できるので、スクリプトを修正せずに済みます。ちなみに、iPhone/iPadにはマウスがないので、title属性にファイル名を記述してもツールチップは表示されません。

 次に、サムネイル画像がタップされたときの処理を作ります。getElementById()でサムネイル画像全体を囲んでいるdiv要素を取得します。

var base = document.getElementById("thumb");

 続いて、取得したdiv要素内にあるimg要素をgetElementsByTagName("img")を使ってピックアップします。imgタグだけを入れた配列が返されますので、あとは配列の数だけイベントを設定します。今回はclickイベントを設定していますが、touchstartイベントを設定しても問題はありません。

 サムネイル画像がタップされたらthis.titleとしてimg要素のtitle属性の内容を読み出します。読み出したファイル名をNKVideoPlayerオブジェクトのopenFileName()メソッドの引数に指定すればできあがりです。

 ここまでをまとめたのがサンプル2です。NimbleKitはiOSの回転機能に対応していませんが、動画の場合はiPhoneを横向きにすると自動的に回転して再生されます。

■サンプル2

<html>
<head>
<meta name = "viewport" content = "initial-scale = 1.0, user-scalable = no" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<style>
body { margin-left: 30px; margin-top: 20px; }
</style>
<script type="text/javascript" src="NKit.js"></script>
</head>
<body>
<div id="thumb">
  <img src="thumb/atera.jpg" title="atera.mov">
  <img src="thumb/fireworks.jpg" title="fireworks.mov">
  <img src="thumb/matsumoto.jpg" title="matsumoto.mov">
  <img src="thumb/misyakaike.jpg" title="misyakaike.mov">
  <img src="thumb/ono.jpg" title="ono.mov">
  <img src="thumb/stone.jpg" title="stone.mov">
  <img src="thumb/train.jpg" title="train.mov">
  <img src="thumb/tsutsuji.jpg" title="tsutsuji.mov">
</div>
<script>
  var base = document.getElementById("thumb");
  var imgList = base.getElementsByTagName("img");
  for(var i=0; i<imgList
</body>
</html>

この連載の記事

一覧へ

この記事の編集者は以下の記事をオススメしています