AudioFocusSession
オーディオフォーカスセッションを使用すると、オーディオフォーカスのリクエストや解放など、オーディオフォーカス管理を行うことができます。オーディオフォーカスセッションは、オーディオフォーカスをリクエストしたり解放したりするために、再生ストリームによって使用されます。再生ストリームビルダーでは、setAudioFocusSessionIdを呼び出すことで、使用するオーディオフォーカスセッションを指定できます。
必要なサービス
このAPIには、システムオーディオサービスの宣言が必要です。
[wants]
[[wants.service]]
id = "com.amazon.audio.control"
使用される型
- *
コンストラクタ
new AudioFocusSession()
new AudioFocusSession(
id): AudioFocusSession
パラメーター
id
number
取得済みのセッションID
戻り値
プロパティ
sessionId
sessionId:
number
focusUsage
focusUsage:
number
メソッド
getAudioSessionId()
getAudioSessionId():
number
このインスタンスのセッションIDを取得します。
戻り値
number
number:このインスタンスに割り当てられたセッションID
例
/* セッションIDを返し、sessionIdに格納します。 *
const session = new AudioFocusSession(1); const sessionId = session.getAudioSessionId(); // 値は1である必要があります。
getUsage()
getUsage():
number
このフォーカスセッションの現在のオーディオ使用タイプを取得します。フォーカスがリクエストされていない場合はUSAGE_NONEを返します。
戻り値
number
number:列挙型から取得した現在のオーディオ使用タイプ
例
/*
オーディオフォーカスをリクエストし、Promiseが解決されたときにAudioFocusStatus型を返します。
sessionはAudioFocusSessionオブジェクトであると想定します。
*\/
const attr: AudioFocusAttributes = {
usage: audioSource.usage
};
const status = session.requestAudioFocusAsync(attr)
.then((status) => {return status;}).catch((error) => console.log(error));
let usage = session.getUsage(); // フォーカスをリクエストするときに使用した使用状況と同じである必要があります。
registerAudioFocusListenerAsync()
registerAudioFocusListenerAsync(callback:
(value: any) => void):Promise<AudioFocusStatus>
オーディオフォーカス変更通知を受け取るコールバックを登録します。セッションごとに一度に登録できるコールバックは1つだけです。
パラメーター
callback
(value: any) => void
フォーカス変更イベントを受け取る関数。イベントには以下のものがあります。
GRANTED (0): フォーカスが付与されましたRELEASED (1): フォーカスがリリースされましたDUCKED (2): オーディオダッキングが行われました(音量が下がりました)PAUSED (3): オーディオが一時停止しましたSTOPPED (4): オーディオが停止しました
戻り値
Promise<AudioFocusStatus>
Promise:以下に解決されるプロミスオブジェクト:
AUDIO_FOCUS_STATUS_NO_ERROR (0): コールバックが登録されましたAUDIO_FOCUS_STATUS_BAD_VALUE (-2): コールバックが無効ですAUDIO_FOCUS_STATUS_NO_INIT (-3): セッションが初期化されていませんAUDIO_FOCUS_STATUS_INVALID_OPERATION (-8): コールバックは既に登録されています
例
/*
関数を作成し、オーディオフォーカスリスナーに登録して、オーディオフォーカスの
変更が発生するたびにこの関数が実行されるようにします。Promiseの解決後に返された
statusに格納します。
sessionはAudioFocusSessionオブジェクトであると想定します。
*\/
const callbackFunction = (event: any) => {
switch (event.focusChange) {
case AudioFocusChange.GRANTED:
// オーディオフォーカスが付与されたときにトリガーされます。
break;
case AudioFocusChange.RELEASED:
// オーディオフォーカスが解放されたときにトリガーされます。
break;
case AudioFocusChange.DUCKED:
// オーディオをダッキングする(音量を下げる)必要があるときにトリガーされます。
break;
case AudioFocusChange.PAUSED:
// オーディオを一時停止する必要があるときにトリガーされます。
break;
case AudioFocusChange.STOPPED:
// オーディオを停止する必要があるときにトリガーされます。
break;
case AudioFocusChange.MUTED:
// オーディオをミュートする必要があるときにトリガーされます(現在、これをサポートする製品はありません)
break;
}
};
const status = session.registerAudioFocusListenerAsync(callbackFunction)
.then((status) => {return status;}).catch((error) => console.log(error));
releaseAudioFocusAsync()
releaseAudioFocusAsync():
Promise<AudioFocusStatus>
以前にリクエストされたオーディオフォーカスをリリースします。オーディオの再生が完了したとき、またはフォーカスが不要になったときに呼び出す必要があります。
戻り値
Promise<AudioFocusStatus>
Promise:以下に解決されるプロミスオブジェクト:
AUDIO_FOCUS_STATUS_NO_ERROR (0): フォーカスがリリースされましたAUDIO_FOCUS_STATUS_BAD_VALUE (-2): セッション状態が無効ですAUDIO_FOCUS_STATUS_NO_INIT (-3): セッションが初期化されていませんAUDIO_FOCUS_STATUS_INVALID_OPERATION (-8): フォーカスが保持されていません
例
/*
オーディオフォーカスを解放し、Promiseが解決されたときにAudioFocusStatus型を返します。
sessionはAudioFocusSessionオブジェクトであると想定します。
*\/
const status = session.releaseAudioFocusAsync()
.then((status) => {return status;}).catch((error) => console.log(error));
requestAudioFocusAsync()
requestAudioFocusAsync(attr?: AudioFocusAttributes
| undefined):Promise<AudioFocusStatus>
指定された属性を持つセッションのオーディオフォーカスをリクエストします。フォーカスが付与されると、使用タイプに応じて、以前にフォーカスされたオーディオがダッキング、一時停止、または停止される場合があります。
パラメーター
attr?
AudioFocusAttributes | undefined
フォーカスリクエストの構成(任意)。指定しない場合、デフォルトでUSAGE_MEDIAになります。
戻り値
Promise<AudioFocusStatus>
Promise:以下に解決されるプロミスオブジェクト:
AUDIO_FOCUS_STATUS_NO_ERROR (0): フォーカスが付与されましたAUDIO_FOCUS_STATUS_DENIED (1): フォーカスリクエストが拒否されましたAUDIO_FOCUS_STATUS_DELAYED (2): フォーカスリクエストが遅延しましたAUDIO_FOCUS_STATUS_BAD_VALUE (-2): 属性が無効ですAUDIO_FOCUS_STATUS_NO_INIT (-3): セッションが初期化されていませんAUDIO_FOCUS_STATUS_INVALID_OPERATION (-8): 無効な操作です
例
/*
オーディオフォーカスをリクエストし、Promiseが解決されたときにAudioFocusStatus型を返します。
sessionはAudioFocusSessionオブジェクトであると想定します。
*\/
const attr: AudioFocusAttributes = {
usage: audioSource.usage
};
const status = session.requestAudioFocusAsync(attr)
.then((status) => {return status;}).catch((error) => console.log(error));
unregisterAudioFocusListenerAsync()
unregisterAudioFocusListenerAsync():
Promise<AudioFocusStatus>
以前に登録されたフォーカス変更コールバックの登録を解除します。
戻り値
Promise<AudioFocusStatus>
Promise:以下に解決されるプロミスオブジェクト:
AUDIO_FOCUS_STATUS_NO_ERROR (0): コールバックの登録が解除されましたAUDIO_FOCUS_STATUS_BAD_VALUE (-2): セッション状態が無効ですAUDIO_FOCUS_STATUS_NO_INIT (-3): セッションが初期化されていませんAUDIO_FOCUS_STATUS_INVALID_OPERATION (-8): 登録されたコールバックはありません
例
/*
コールバック関数の登録を解除し、Promiseの解決後に返されたAudioFocusStatus型を
statusに格納します。
*\/
const status = session.unregisterAudioFocusListenerAsync()
.then((status) => {return status;}).catch((error) => console.log(error));
Last updated: 2026年7月22日

