オーディオフォーカスセッション
オーディオフォーカスセッションを使用すると、オーディオフォーカスのリクエストや解放など、オーディオフォーカスの管理を行うことができます。オーディオフォーカスセッションは、オーディオフォーカスをリクエストしたり解放したりするために、再生ストリームによって使用されます。再生ストリームビルダーでは、setAudioFocusSessionIdを呼び出すことで、使用するオーディオフォーカスセッションを指定できます。
必要なサービス
このAPIには、システムオーディオサービスの宣言が必要です。
[wants]
[[wants.service]]
id = "com.amazon.audio.control"
使用される型
オーディオコアタイプを参照してください
AudioFocusAttributesAudioFocusStatusAudioFocusChange
メソッド
requestAudioFocusAsync(attr)
説明
選択したオーディオ使用タイプのセッションで、オーディオフォーカスをリクエストします。
戻り値
AudioFocusStatus型に解決されるPromiseを返します。
パラメーター
| パラメーター名 | 型 | 必須 | 説明 |
|---|---|---|---|
| attr | AudioFocusAttributes | × | オーディオフォーカスの処理方法を指定します。指定しない場合、新しい属性が作成されます。 |
サンプルコード
/*
オーディオフォーカスをリクエストし、Promiseが解決されたときにAudioFocusStatus型を返します。
sessionはAudioFocusSessionオブジェクトであると想定します。
*/
const attr: AudioFocusAttributes = {
usage: audioSource.usage
};
const status = session.requestAudioFocusAsync(attr)
.then((status) => {return status;}).catch((error) => console.log(error));
releaseAudioFocusAsync()
説明
セッションでオーディオフォーカスを解放します。
戻り値
AudioFocusStatus型に解決されるPromiseを返します。
サンプルコード
/*
オーディオフォーカスを解放し、Promiseが解決されたときにAudioFocusStatus型を返します。
sessionはAudioFocusSessionオブジェクトであると想定します。
*/
const status = session.releaseAudioFocusAsync()
.then((status) => {return status;}).catch((error) => console.log(error));
registerAudioFocusListenerAsync(callback)
説明
オーディオフォーカスイベントが検出されるたびに実行されるコールバック関数を登録します。登録できるコールバック関数は、一度に1つだけです。
戻り値
AudioFocusStatus型に解決されるPromiseを返します。
パラメーター
| パラメーター名 | 型 | 必須 | 説明 |
|---|---|---|---|
| callback | function | ○ | イベントを受け取り、そのイベントに基づいて情報を出力するコールバック関数。 |
サンプルコード
/*
関数を作成し、オーディオフォーカスリスナーに登録して、オーディオフォーカスの
変更が発生するたびにこの関数が実行されるようにします。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));
unregisterAudioFocusListenerAsync()
説明
オーディオフォーカス用に現在登録されているコールバック関数を登録解除します。
戻り値
AudioFocusStatus型に解決されるPromiseを返します。
サンプルコード
/*
コールバック関数の登録を解除し、Promiseの解決後に返されたAudioFocusStatus型を
statusに格納します。
*/
const status = session.unregisterAudioFocusListenerAsync()
.then((status) => {return status;}).catch((error) => console.log(error));
getAudioSessionId()
説明
メンバー変数sessionIdの値を取得します。これは、特定のフォーカスセッションのセッションIDを表します。
戻り値
セッションIDを表す番号を返します。
サンプルコード
/*
セッションIDを返し、sessionIdに格納します。
*/
const session = new AudioFocusSession(1);
const sessionId = session.getAudioSessionId(); //value should be 1
getUsage()
説明
オーディオフォーカスの使用状況の値を取得します
戻り値
オーディオフォーカスの使用状況を表す数値を返します。
サンプルコード
/*
オーディオフォーカスをリクエストし、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(); // フォーカスをリクエストするときに使用した使用状況と同じである必要があります。
Last updated: 2025年10月2日

