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