Amazon Developer

as

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

AudioPlaybackStreamBuilder

AudioPlaybackStreamBuilder

オーディオ再生ストリームビルダーを使用すると、オーディオ再生ストリームの構成、作成、破棄を行うことができます。

必要なサービス

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

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

使用される型

以下を参照してください

  • *

コンストラクタ

new AudioPlaybackStreamBuilder()

new AudioPlaybackStreamBuilder(): AudioPlaybackStreamBuilder

戻り値

AudioPlaybackStreamBuilder

プロパティ

args

args: Object = {}

メソッド

buildAsync()

buildAsync(): Promise<AudioPlaybackStream>

現在のビルダー構成を使用して、新しいAudioPlaybackStreamを作成します。作成する前に構成を呼び出しておく必要があります。

戻り値

Promise<AudioPlaybackStream>

Promise:以下に解決されるプロミスオブジェクト:

  • 新しいインスタンス(成功した場合)

または、次の値で拒否します。

  • STATUS_BAD_VALUE (-2): 必要な構成が見つかりません
  • STATUS_NO_INIT (-3): オーディオシステムが初期化されていません
  • STATUS_NO_MEMORY (-1): リソースを割り当てることができませんでした
  • STATUS_DEAD_OBJECT (-5): サーバー通信エラー
  • STATUS_INVALID_OPERATION (-8): 構成の組み合わせが無効です

/*
AudioPlaybackStreamオブジェクトに解決されるPromiseを返し、
playbackStream
*\/
const builder = new AudioPlaybackStreamBuilder();
const playbackStream = builder.buildAsync()
.then((stream) => {return stream;}).catch((error) => console.log(error));


destroyAsync()

static destroyAsync(playbackStream: AudioPlaybackStream): Promise<AudioStatus>

既存のものを破棄します。これにより、ストリームに関連するすべてのリソースがリリースされます。このメソッドを呼び出した後は、ストリームオブジェクトを使用しないでください。進行中の再生がすべて停止されます。

パラメーター

playbackStream

AudioPlaybackStream

破棄するストリーム

戻り値

Promise<AudioStatus>

Promise:以下に解決されるプロミスオブジェクト:

  • STATUS_NO_ERROR (0): ストリームが破棄されました
  • STATUS_BAD_VALUE (-2): ストリームオブジェクトが無効です
  • STATUS_NO_INIT (-3): オーディオシステムが初期化されていません
  • STATUS_INVALID_OPERATION (-8): ストリームは既に破棄されています

/*
playbackStreamを破棄し、Promiseの解決後に返されたAudioStatus型を
statusに格納します。

playbackStreamはAudioPlaybackStreamオブジェクトであると想定します。
*\/

const status = AudioPlaybackStreamBuilder.destroyAsync(playbackStream)
.then((status) => {return status;}).catch((error) => console.log(error));


reset()

reset(): void

すべてのビルダー構成をデフォルト値にリセットします。

ビルダーを再利用して別のストリーム構成を作成する場合に使用できます。

/*
オーディオ再生ビルダー構成をリセットします。

builderはAudioPlaybackStreamBuilderオブジェクトであると想定します。
*\/

builder.reset();


setAudioAttributes()

setAudioAttributes(attributes: AudioAttributes): void

ビルドするストリームのオーディオ属性を設定します。これらの属性は、あらかじめ呼び出しておく必要があります。これらの属性は、ストリームとオーディオフォーカスシステムのやり取りに影響します。

パラメーター

attributes

AudioAttributes

以下を含むオーディオ属性オブジェクト。

  • contentType: 列挙型から取得したコンテンツのタイプ
  • usage: 列挙型から取得した使用シナリオ
  • flags: 列挙型から取得した動作フラグ

/*
オーディオ属性をattributesで指定した値に設定します。
buildAysnc()の呼び出しによって作成される再生ストリームはすべて、これらの
attributes
builderはAudioPlaybackStreamBuilderオブジェクトであると想定します。
*\/
const attributes: AudioAttributes = {
    contentType: AudioContentType.CONTENT_TYPE_NONE,
    usage: AudioUsageType.USAGE_NONE,
    flags: AudioFlags.FLAG_NONE
};

builder.setAudioAttributes(attributes);


setAudioConfig()

setAudioConfig(config: AudioConfig): void

ビルドするストリームのオーディオ構成を設定します。これらの属性は、あらかじめ呼び出しておく必要があります。

パラメーター

config

AudioConfig

以下を含むオーディオ構成オブジェクト。

  • sampleRate: 列挙型から取得したサンプルレート (Hz)
  • channelMask: 列挙型から取得したチャネル構成
  • format: 列挙型から取得したサンプル形式

/*
オーディオ再生構成をconfigで指定した値に設定します。
buildAysnc()の呼び出しによって作成される再生ストリームはすべて、この
configuration

builderはAudioPlaybackStreamBuilderオブジェクトであると想定します。
*\/
const config: AudioConfig = {
    sampleRate: AudioSampleRate.SAMPLE_RATE_8_KHZ,
    channelMask: AudioChannelMask.CHANNEL_STEREO,
    format: AudioSampleFormat.FORMAT_PCM_16_BIT,
};

builder.setAudioConfig(config);


setAudioEffectSessionId()

setAudioEffectSessionId(effectSessionId: Int32): void

ストリームのカスタムオーディオエフェクトセッションIDを設定します。これにより、このストリームにカスタムオーディオエフェクトを適用できます。

パラメーター

effectSessionId

Int32

次から取得したエフェクトセッションID:


setAudioFocusSessionId()

setAudioFocusSessionId(focusSessionId: Int32): void

ストリームのオーディオフォーカスセッションIDを設定します。これにより、フォーカス管理のために、ストリームを特定のフォーカスセッションに関連付けることができます。

パラメーター

focusSessionId

Int32

次から取得したフォーカスセッションID:

  • 既存のストリーム

/*
セッションIDを1に設定します。

builderはAudioPlaybackStreamBuilderオブジェクトであると想定します。
*\/

builder.setAudioFocusSessionId(session.getAudioSessionId());


: 上の例では、sessionがAudioFocusSessionオブジェクトであると想定しています。


setBufferCount()

setBufferCount(bufferCount: Int32): void

ストリームに使用するバッファ数を設定します。バッファを増やすとレイテンシが増加しますが、アンダーランに対する保護は強化されます。

パラメーター

bufferCount

Int32

バッファ数。0より大きくなければなりません。一般的な値: 2、3、4


setDuckingPolicy()

setDuckingPolicy(duckPolicy: StreamDuckingPolicy): void

ストリームのダッキングポリシーを設定します。これにより、オーディオフォーカスがダッキングされたときの音量の下げ方が決まります。

ダッキングポリシーがStreamDuckingPolicy::EXPLICITである場合、アプリはduckVolume APIを呼び出してストリームの音量をダッキングする必要があります。そうしないと、音量は変更されません。StreamDukingPolicy:: SYSTEM(デフォルト)に設定されている場合、ストリーム音量のダッキングはシステムによって処理されます。

パラメーター

duckPolicy

StreamDuckingPolicy

次のダッキングポリシーがあります。

  • SYSTEM (0): システムが自動的に音量を下げます
  • EXPLICIT (1): アプリケーションは呼び出しを使用して音量を下げる必要があります

const createAudioSourceInstance = async () => {
    const builder = new AudioPlaybackStreamBuilder();
    /*その他の構成
    ...
    ...
    ...*\/
    builder.setDuckingPolicy(StreamDuckingPolicy.EXPLICIT); // ポリシーを明示的に設定します
    const stream = await builder.buildAsync();
    playbackStream.current = stream;
}

createAudioSourceInstance();


setFramesPerBuffer()

setFramesPerBuffer(framesPerBuffer: Int32): void

ストリームのバッファあたりのフレーム数を設定します。これは、共有メモリバッファーキューにおけるスロットあたりのバッファーサイズを決定するために使用されます。値を大きくするとレイテンシが増加しますが、電力効率は向上します。値を小さくするとレイテンシは減少しますが、アンダーランが発生する可能性があります。

パラメーター

framesPerBuffer

Int32

バッファあたりのフレーム数。0より大きくなければなりません。一般的な値: 25651210242048

/*
ビルダーのバッファーあたりのフレーム数を設定します。

builderはAudioPlaybackStreamBuilderオブジェクトであると想定します。
*\/const framesPerBuffer = 200;
builder.setFramesPerBuffer(framesPerBuffer);


setUnderrunThreshold()

setUnderrunThreshold(framesThreshold: Int32): void

バッファアンダーランをレポートするしきい値を設定します。再生バッファが空になると、アンダーランが発生します。

パラメーター

framesThreshold

Int32

フレーム数のしきい値。使用可能なフレームがこの値を下回ると、アンダーランイベントがトリガーされます。0より大きくなければなりません。

const createAudioSourceInstance = async () => {
    const builder = new AudioPlaybackStreamBuilder();
    /*その他の構成
    ...
    ...
    ...*\/
    builder.setUnderrunThreshold(3); // しきい値を3に設定します
    const stream = await builder.buildAsync();
    playbackStream.current = stream;
}

createAudioSourceInstance();



Last updated: 2026年7月22日