HTML5でオーディオが再生中かどうかを確認する方法
Webアプリケーションを開発していると、オーディオが現在再生中かどうかを判定したい場面があります。HTML5では、<audio>要素が持つプロパティを活用することで、簡単にこの状態を確認できます。
isPlaying関数で再生状態を判定する
以下の関数を使用すると、オーディオが再生中かどうかをチェックできます。
function isPlaying(audelem) {
return !audelem.paused;
}pausedプロパティの仕組み
上記のコードは、オーディオの再生状況を判定するために利用できます。<audio>タグにはpausedプロパティが用意されており、このプロパティはオーディオや動画が一時停止中であるかどうかを真偽値(true / false)で返します。
- true:オーディオが一時停止中(またはまだ再生が開始されていない)
- false:オーディオが再生中
つまり、pausedプロパティの否定を返すことで、「現在再生中かどうか」を判定できるわけです。
再生と一時停止を切り替えるtogglePause関数
さらに、再生と一時停止をトグルで切り替えたい場合は、以下のような関数が便利です。
function togglePause() {
if (newAudio.paused && newAudio.currentTime > 0 && !newAudio.ended) {
newAudio.play();
} else {
newAudio.pause();
}
}コードの解説
この関数では、次の3つの条件をすべて満たした場合に再生を再開します。
newAudio.paused— オーディオが一時停止中であることnewAudio.currentTime > 0— 再生位置が先頭ではないこと(一度再生が始まっていること)!newAudio.ended— オーディオが最後まで再生されていないこと
これらの条件を満たす場合はplay()メソッドで再生を再開し、それ以外の場合はpause()メソッドで一時停止します。
まとめ
HTML5の<audio>要素に用意されたpaused、currentTime、endedなどのプロパティを組み合わせることで、オーディオの再生状態を柔軟に制御できます。プレイヤーUIの再生ボタンの表示切り替えなどにも応用できるので、ぜひ活用してみてください。
-
【解決法】iTunesの音がヘッドフォンから再生されないときの対処法
iTunesを使用している際、ヘッドフォンから音声が再生されないという報告が多数のユーザーから寄せられています。多くのユーザーは、ヘッドフォンを接続していてもスピーカーから音が出続けると訴えています。YouTubeや標準のミュージックアプリ、ゲームなど他のアプリではヘッドフォンから正常に音声が出力されているにもかかわらずです。この問題は、Windows 7、Windows 8、Windows 10を含む複数のWindowsバージョンで頻繁に報告されています。「iTunesでヘッドフォンが機能しない問題」の原因は?私たちは、さまざまなユーザーの報告や、エラーを解決するために実際に使われた修復方法
-
Apple TVで映画の音声だけ再生されない?AirPlay設定を見直す簡単な解決法
Apple TVを使っていて、アプリを操作しているときは音が出るのに、いざ映画を再生すると音声だけ鳴らない——こんな経験はありませんか? この症状、実はよくあるトラブルの一つです。原因の多くはAirPlayの不具合にあります。AirPlayが誤作動を起こし、映画の音声ストリームを勝手に別のデバイスへ送信してしまっている可能性が高いのです。 解決方法:AirPlayを再起動して出力先を確認 対処法はとてもシンプルです。以下の手順に沿って設定を見直してみましょう。 ホーム画面から「設定」アプリを開く 「AirPlay」の項目を選択する AirPlayを一度オフにして、再度オンにする スピーカー