AudioPlaybackStreamBuilder
オーディオ再生ストリームビルダーを使用すると、オーディオ再生ストリームの構成、作成、破棄を行うことができます。
必要なサービス
このAPIには、システムオーディオサービスの宣言が必要です。
[wants]
[[wants.service]]
id = "com.amazon.audio.stream"
[[wants.service]]
id = "com.amazon.audio.control"
使用される型
以下を参照してください
- *
コンストラクタ
new AudioPlaybackStreamBuilder()
new 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()
staticdestroyAsync(playbackStream: AudioPlaybackStream):Promise<AudioStatus>
既存のものを破棄します。これにより、ストリームに関連するすべてのリソースがリリースされます。このメソッドを呼び出した後は、ストリームオブジェクトを使用しないでください。進行中の再生がすべて停止されます。
パラメーター
playbackStream
破棄するストリーム
戻り値
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
以下を含むオーディオ属性オブジェクト。
- 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
以下を含むオーディオ構成オブジェクト。
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
次のダッキングポリシーがあります。
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より大きくなければなりません。一般的な値: 256、512、1024、2048
例
/*
ビルダーのバッファーあたりのフレーム数を設定します。
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日

