質問: video3; Sound.play("left"); console.log(video3.video.get(0).currentTime); if(video3.video.get(0).currentTime >= 4.8){ Sound.pause('left'); }; }; ``` ### 補足情報(言語/FW/ツール等のバージョンなど) Javascript, Atom
回答: GitHubで`howler.js`を見た限りでは、音の再生部分もそれでは動かないような気がしますが、 そこは措いておくとしましょう。 goldfire/howler.js: Javascript audio library for the modern web. 4.8秒後に処理をさせたい場合は、 `if(video3.video.get(0).currentTime >= 4.8)` ではダメですね。 このif文は、それを実行した瞬間にしか判定されないので、 そこを通過する瞬間に既に4.8秒が経過していれば`pause`が実行されますが、 このコードの場合はif文の時点で`currentTime`はおそらくほぼ毎回`0`になり、 if文の中は処理されないと思います。 `n`秒後に処理を実行させたい場合、 `setTimeout()`関数、または`setInterval()`関数を使用します。 `4800`となっているのは、単位がミリ秒だからです。 これだと`video3.video.get(0).currentTime`の値を見ていないので困るようでしたら、 `setInterval()`関数を使って`0.1`秒おきくらいに `if(video3.video.get(0).currentTime >= 4.8)`の判定をさせれば良いでしょう。 監視がおわったら`clearInterval()`するのを忘れずに。 * コード例 ``` var playVideo3 = function(){ video3.loadVideo(); selectedVideo = video3; // Sound.play("left"); console.log(video3.video.get(0).currentTime); setTimeout(function() { // Sound.pause('left'); console.log("pause"); }, 4800); }; ```