BaseAudioContext: state プロパティ
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.
state
は BaseAudioContext
インターフェイスの読み取り専用プロパティで、現在の AudioContext
の状態を返します。
値
文字列です。取りうる値は以下の通りです。
suspended
-
音声コンテキストは(
AudioContext.suspend()
によって)一時停止中です。 running
-
音声コンテキストは通常動作中です。
closed
-
音声コンテキストは(
AudioContext.close()
によって)閉じられています。
例
状態の変化の扱い
次のスニペットは AudioContext states のデモ(ライブ実行で確認)の一部です。 onstatechange
ハンドラーは、状態が変わるたびにコンソールにログを出力するために使われています。
js
audioCtx.onstatechange = () => {
console.log(audioCtx.state);
};
iOS Safari における一時停止した再生の再開の状態
iOS の Safari では、ユーザーが(タブの切り替え、ブラウザーの最小化、画面のオフなどで)ページを離れると、音声コンテキストの状態が "interrupted" に変わり、再開させる必要があります。例えば次のようにします。
js
function play() {
if (audioCtx.state === "interrupted") {
audioCtx.resume().then(() => play());
return;
}
// play() 関数の残り
}
仕様書
Specification |
---|
Web Audio API # dom-baseaudiocontext-state |
ブラウザーの互換性
BCD tables only load in the browser