Amazon Developer

as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
Ring
AWS
ドキュメント
Support
Contact Us
My Cases
開発
設計と開発
公開
リファレンス
サポート

AudioFocusSession

AudioFocusSession

オーディオフォーカスセッションを使用すると、オーディオフォーカスのリクエストや解放など、オーディオフォーカス管理を行うことができます。オーディオフォーカスセッションは、オーディオフォーカスをリクエストしたり解放したりするために、再生ストリームによって使用されます。再生ストリームビルダーでは、setAudioFocusSessionIdを呼び出すことで、使用するオーディオフォーカスセッションを指定できます。

必要なサービス

このAPIには、システムオーディオサービスの宣言が必要です。

[wants]
[[wants.service]]
id = "com.amazon.audio.control"

使用される型

  • *

コンストラクタ

new AudioFocusSession()

new AudioFocusSession(id): AudioFocusSession

パラメーター

id

number

取得済みのセッションID

戻り値

AudioFocusSession

プロパティ

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日