■補講 映像の特定の時間にテロップ等を表示する場合の注意  第3章ではオーディオと映像を扱いました。その中で再生時間を示すプロパティとしてcurrentTimeがあります。currentTimeプロパティは読み出しだけでなく設定することもできます。本書の説明ではcurrentTimeに0を入れることで映像の巻き戻しを行いました。  映像を再生し、その上にテロップ(文字)を表示したい人もいるかもしれません。その際、currentTimeプロパティの値を読み出して、その値(時間)に応じてテロップを表示する処理を行います。単純に考えると以下のようなプログラムになります。 if (videoObj.currentTime == 1.0){ テロップを表示する処理 } それでは、このプログラムは正常に動作するでしょうか? このプログラムは期待通りに動作するブラウザとそうではないブラウザにわかれます。また、同じブラウザであっても、動く場合と動かない場合があります。 どうして、動かないのでしょうか? 実はブラウザが映像を再生する際、currentTimeにはフレーム毎の値が入る保証がありません。また、フレームが変わった際に発生するtimeupdateイベントもブラウザによって異なります。フレーム毎発生する保証はありません。 こういう部分は仕様には含まれていないため、思わぬ落とし穴になることがあります。仕様書だけではカバー仕切れない部分も結構ありますから、やはりいろいろ作って経験値をためるのがよいでしょう。