Amazon Developer

as

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

AudioPlaybackStream

AudioPlaybackStream

オーディオ再生ストリームを使用すると、一時停止、フラッシュ、再生バッファーへの書き込みなど、再生ストリームの制御を行うことができます。

必要な権限

このAPIでは、特定の操作に特定の権限が必要です。

[[needs.privilege]]
id = "com.amazon.audio.privilege.settings.control"

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

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

使用される型

以下を参照してください

  • *

コンストラクタ

new AudioPlaybackStream()

new AudioPlaybackStream(id): AudioPlaybackStream

パラメーター

id

number

内部ストリーム識別子

戻り値

AudioPlaybackStream

プロパティ

streamId

streamId: number

メソッド

duckVolumeAsync()

duckVolumeAsync(mode: Int32, value: Int32, rampDurationMs: Int32): Promise<Int32>

ダッキングのためにストリームの音量を調整します。EXPLICITダッキングポリシーを使用する場合にのみ有効になります。

パラメーター

mode

Int32

(0) または (1)

value

Int32

下げることができる音量:

  • DBの場合: 0~144dB
  • PERCENTAGEの場合: 0~100%

valueに0を指定した場合は、ストリームが元の音量までダッキング解除されないことを意味します。

rampDurationMs

Int32

現在の音量がターゲットの音量になるまでの時間(ミリ秒単位)。

戻り値

Promise<Int32>

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

  • (0): 音量がダッキングされました
  • (-3): ストリームが初期化されていません
  • (-2): パラメーターが無効です
  • (-8): ダッキングポリシーが正しくありません

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

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

const duckVolumeAsyncTest = async () => {
    try {
      /*500ミリ秒で最大50%ダッキング*\/
      let duckStatus = await playbackStream.current?.duckVolumeAsync(DuckingMode.PERCENTAGE, 50, 500);
    } catch (err) {
      console.debug("duckVolumeAsync() ERR:", err);
    }

    /*現在の再生ストリームに関連付けられたオーディオを再生するメソッドがあると想定します*\/

    playClipDucked();
}

createAudioSourceInstance();
duckVolumeAsyncTest();



flushAsync()

flushAsync(): Promise<AudioStatus>

再生状態を変更せずに、バッファリングされたすべてのデータをフラッシュします。

戻り値

Promise<AudioStatus>

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

  • (0): フラッシュされました
  • (-3): ストリームが初期化されていません
  • (-8): 再生中はフラッシュできません
  • (-5): サーバー通信エラー

/*
オーディオ再生ストリームをフラッシュし、Promiseの解決後に返されたAudioStatus型を
statusに格納します。

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

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


getAudioAttributesAsync()

getAudioAttributesAsync(): Promise<AudioAttributes>

再生ストリームの現在のオーディオ属性を取得します。

戻り値

Promise<AudioAttributes>

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

  • contentType: 再生中のコンテンツのタイプ
  • usage: ストリームの使用カテゴリー
  • flags: 現在の動作のフラグ。または、次の値で拒否します。
  • (-3): ストリームが初期化されていません
  • (-5): サーバー通信エラー

/*
再生ストリームのオーディオ属性を取得し、Promiseの解決後にattributesに
格納します。

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

const attributes = playbackStream.getAudioAttributesAsync()
.then((attributes) => {return attributes;}).catch((error) => console.log(error));


getAudioConfigAsync()

getAudioConfigAsync(): Promise<AudioConfig>

再生ストリームの現在のオーディオ構成を取得します。

戻り値

Promise<AudioConfig>

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

  • sampleRate: Hz単位の現在のサンプルレート
  • channelMask: 現在のチャネル構成
  • format: 現在のサンプルフォーマット。または、次の値で拒否します。
  • (-3): ストリームが初期化されていません
  • (-5): サーバー通信エラー

/*
再生ストリームのオーディオ構成を取得し、Promiseの解決後にconfigに
格納します。

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

const config = playbackStream.getAudioConfigAsync()
.then((config) => {return config;}).catch((error) => console.log(error));


getAudioEffectSessionIdAsync()

getAudioEffectSessionIdAsync(): Promise<Int32>

このストリームに関連付けられているカスタムオーディオエフェクトセッションIDを取得します。

戻り値

Promise<Int32>

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

  • 正の値: エフェクトセッションID
  • (-3): ストリームが初期化されていません
  • (-2): エフェクトセッションが割り当てられていません

getAudioFocusSessionIdAsync()

getAudioFocusSessionIdAsync(): Promise<Int32>

このストリームに関連付けられているオーディオフォーカスセッションIDを取得します。

戻り値

Promise<Int32>

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

  • 正の値: フォーカスセッションID
  • (-3): ストリームが初期化されていません
  • (-2): フォーカスセッションが割り当てられていません

/*
フォーカスセッションを取得し、Promiseの解決後にsession_idに格納します。

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

const session_id = playbackStream.getAudioFocusSessionIdAsync()
.then((id) => {return id;}).catch((error) => console.log(error));


getBufferCountAsync()

getBufferCountAsync(): Promise<Int32>

このストリームに構成されているバッファ数を取得します。

戻り値

Promise<Int32>

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

  • 正の値: バッファ数
  • (-3): ストリームが初期化されていません
  • (-5): サーバー通信エラー

getChannelCountAsync()

getChannelCountAsync(): Promise<Int32>

再生ストリームのチャネル数を取得します。

戻り値

Promise<Int32>

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

  • 正の値: チャネル数
  • (-3): ストリームが初期化されていません
  • (-5): サーバー通信エラー

/*
再生ストリームのチャネル数を取得し、Promiseの解決後にchannel_countに
格納します。

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

const channel_count = playbackStream.getChannelCountAsync()
.then((count) => {return count;}).catch((error) => console.log(error));


getDuckingPolicyAsync()

getDuckingPolicyAsync(): Promise<Int32>

ストリームの現在のダッキングポリシーを取得します。

戻り値

Promise<Int32>

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

  • (0): システムが自動的にダッキングを処理します
  • (1): アプリケーションがダッキングを処理する必要があります

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

  • (-3): ストリームが初期化されていません
  • (-5): サーバー通信エラー

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

const getDuckingPolicyAsyncTest = async () => {
    try {
      const duckingPolicy = await playbackStream.current?.getDuckingPolicyAsync();
      console.debug("getDuckingPolicyAsync:", duckingPolicy);
    } catch (err) {
      console.debug("getDuckingPolicyAsync() ERR:", err);
    }
}

getDuckingPolicyAsyncTest();


getFramesPerBufferAsync()

getFramesPerBufferAsync(): Promise<Int32>

このストリームに構成されているバッファあたりのフレーム数を取得します。

戻り値

Promise<Int32>

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

  • 正の値: バッファあたりのフレーム数
  • (-3): ストリームが初期化されていません
  • (-5): サーバー通信エラー

/*
ネイティブバッファー内のフレーム数を取得し、Promiseの解決後にbuffer_framesに
格納します。

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

const buffer_frames = playbackStream.getFramesPerBufferAsync()
.then((frames) => {return frames;}).catch((error) => console.log(error));


getLatencyInMsAsync()

getLatencyInMsAsync(): Promise<Int32>

再生ストリームの現在のレイテンシをミリ秒単位で取得します。これには、バッファとハードウェアレイテンシの両方が含まれます。

戻り値

Promise<Int32>

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

  • 正の値: ミリ秒単位のレイテンシ
  • (-3): ストリームが初期化されていません
  • (-5): サーバー通信エラー

/*
レイテンシをミリ秒単位で取得し、Promiseの解決後にlatencyに格納します。

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

const latency = playbackStream.getLatencyInMsAsync()
.then((latency) => {return latency;}).catch((error) => console.log(error));


getMajorVersion()

static getMajorVersion(): number

実装のメジャーバージョン番号を取得します。バージョンの確認に使用できます。

戻り値

number

number:メジャーバージョン番号を取得します。


getMinorVersion()

static getMinorVersion(): number

実装のマイナーバージョン番号を取得します。バージョンの確認に使用できます。

戻り値

number

number:マイナーバージョン番号を取得します。


getNumBytesInPipelineAsync()

getNumBytesInPipelineAsync(): Promise<Int32>

再生パイプラインで現在再生待ちの状態にあるバイト数を取得します。

戻り値

Promise<Int32>

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

  • 正の値: パイプラインにあるバイトの数
  • (-3): ストリームが初期化されていません
  • (-5): サーバー通信エラー

/*
パイプライン内のバイト数を取得し、Promiseの解決後にpipeline_bytesに
格納します。

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

const pipeline_bytes = playbackStream.getNumBytesInPipelineAsync()
.then((bytes) => {return bytes;}).catch((error) => console.log(error));


getNumBytesOfNativeBufferAsync()

getNumBytesOfNativeBufferAsync(): Promise<Int32>

再生に使用されるネイティブバッファのサイズを取得します。再生用にキューに入れることができるデータの最大量を表します。

戻り値

Promise<Int32>

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

  • 正の値: バイト単位のバッファサイズ
  • (-3): ストリームが初期化されていません
  • (-5): サーバー通信エラー

/*
ネイティブバッファー内のバイト数を取得し、Promiseの解決後にbuffer_bytesに
格納します。

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

const buffer_bytes = playbackStream.getNumBytesOfNativeBufferAsync()
.then((bytes) => {return bytes;}).catch((error) => console.log(error));


getPatchVersion()

static getPatchVersion(): number

実装のパッチバージョン番号を取得します。バージョンの確認に使用できます。

戻り値

number

number:パッチバージョン番号


getPresentedFrameCountAsync()

getPresentedFrameCountAsync(): Promise<Int32>

再生されたフレームの総数を取得します。

戻り値

Promise<Int32>

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

  • 正の値: 成功時にオーディオパイプラインに再生されるフレーム数。
  • (-3): ストリームが初期化されていません
  • (-5): サーバー通信エラー

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

const getPresentedFrameCountAsyncTest = async () => {
    try {
      let presentedFrameCount = await playbackStream.current?.getPresentedFrameCountAsync();
      console.debug("getPresentedFrameCountAsync():", presentedFrameCount);
    } catch (error) {
      console.debug('エラー:getPresentedFrameCountAsync():', error);
    }
}

getPresentedFrameCountAsyncTest();


getSampleRateAsync()

getSampleRateAsync(): Promise<Int32>

再生ストリームのサンプルレートを取得します。

戻り値

Promise<Int32>

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

  • 正の値: Hz単位のサンプルレート
  • (-3): ストリームが初期化されていません
  • (-5): サーバー通信エラー

/*
再生ストリームのサンプルレートを取得し、Promiseの解決後にsample_rateに
格納します。

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

const sample_rate= playbackStream.getSampleRateAsync()
.then((rate) => {return rate;}).catch((error) => console.log(error));


getSampleSizeAsync()

getSampleSizeAsync(): Promise<Int32>

再生ストリームのサンプルサイズをビット単位で取得します。

戻り値

Promise<Int32>

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

  • 正の値: ビット単位のサンプルサイズ(例:16、24、32)
  • (-3): ストリームが初期化されていません
  • (-5): サーバー通信エラー

/*
再生ストリームのサンプルサイズを取得し、Promiseの解決後にsample_sizeに
格納します。

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

const sample_size = playbackStream.getSampleSizeAsync()
.then((sample_size) => {return sample_size;}).catch((error) => console.log(error));


getUnderrunCountAsync()

getUnderrunCountAsync(): Promise<Int32>

アンダーランの合計発生回数を取得します。

戻り値

Promise<Int32>

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

  • 正の値: ストリームが存続している間のアンダーラン発生回数。

  • (-3): ストリームが初期化されていません
  • (-5): サーバー通信エラー

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

const getUnderrunCountAsyncTest = async () => {
    try {
      let underRunCount = await playbackStream.current?.getUnderrunCountAsync();
      console.debug("getUnderrunCountAsync():", underRunCount);
    } catch (error) {
      console.debug('エラー:getUnderrunCountAsync():', error);
    }
}

getUnderrunCountAsyncTest();


getUnderrunSizeAsync()

getUnderrunSizeAsync(): Promise<Int32>

アンダーランのサイズをフレーム単位で取得します。再生バッファが空になると、アンダーランが発生します。

クライアントがバッファーアンダーランしきい値を設定しており、再生バッファーがアンダーラン状態の場合、このAPIはバッファーサイズとしきい値の差を返します。

それ以外の場合、このAPIは0を返します。

戻り値

Promise<Int32>

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

  • 正の値: バッファサイズとアンダーランしきい値のフレーム数の差。フレーム数は切り上げられます。
  • 0: アンダーランなし

  • (-3): ストリームが初期化されていません
  • (-5): サーバー通信エラー

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

const getUnderrunSizeAsyncTest = async () => {
    try {
      let underRunSize = await playbackStream.current?.getUnderrunSizeAsync();
      console.debug("getUnderrunSizeAsync():", underRunSize);
    } catch (error) {
      console.debug('エラー:getUnderrunSizeAsync():', error);
    }
}

getUnderrunSizeAsyncTest();


getVolumeAsync()

getVolumeAsync(): Promise<Int32>

ストリームの現在の音量レベルを取得します。

戻り値

Promise<Int32>

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

  • 0~100: 現在の音量レベル
  • (-3): ストリームが初期化されていません
  • (-5): サーバー通信エラー

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

const createAudioSourceInstance = async () => {
    const builder = new AudioPlaybackStreamBuilder();
    /*その他の構成
    ...
    ...
    ...*\/
    builder.setDuckingPolicy(StreamDuckingPolicy.EXPLICIT);
    const stream = await builder.buildAsync();
    playbackStream.current = stream;
}

const setVolumeAsyncTest = async () => {
    try {
      let setVolumeStatus = await playbackStream.current?.setVolumeAsync(70);
    } catch (err) {
      console.debug("setVolumeAsync() ERR:", err);
    }
}

const getVolumeAsyncTest = async () => {
    try {
      let currentStreamVolume = await playbackStream.current?.getVolumeAsync();
      console.log("getVolumeAsync() 現在のストリームの音量:", currentStreamVolume);
    } catch (err) {
      console.debug("getVolumeAsync() ERR:", err);
    }
}

createAudioSourceInstance();
setVolumeAsyncTest();
getVolumeAsyncTest();



initCheckAsync()

initCheckAsync(): Promise<AudioStatus>

再生ストリームが適切に初期化されているか確認します。ストリームを確実に準備するには、ほかのメソッドを使用する前に呼び出す必要があります。

戻り値

Promise<AudioStatus>

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

  • (0): ストリームは適切に初期化されています
  • (-3): ストリームが初期化されていません
  • (-5): サーバー通信エラー

/*
オーディオ再生ストリームのステータスを取得し、statusに格納します。

playbackStreamはAudioPlaybackStreamオブジェクトであると想定します。
*\/
const status = playbackStream.initCheckAsync()
.then((status) => {return status;}).catch((error) => console.log(error));


pauseAsync()

pauseAsync(): Promise<AudioStatus>

ストリームの再生を一時停止します。バッファ内のデータが保持されるため、再生を再開できます。

戻り値

Promise<AudioStatus>

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

  • (0): 一時停止されました
  • (-3): ストリームが初期化されていません
  • (-8): ストリームは既に一時停止されています
  • (-5): サーバー通信エラー

/*
オーディオ再生ストリームを一時停止し、Promiseの解決後に返されたAudioStatus型を
statusに格納します。

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

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


queryMinimumBufferInfoAsync()

queryMinimumBufferInfoAsync(): Promise<Object>

最小バッファ情報を取得します

戻り値

Promise<Object>

minFramesPerBufferフィールドとminBufferCountフィールドのあるプロミスオブジェクト


registerEventObserverAsync()

registerEventObserverAsync(callback: (value: any) => void): Promise<AudioStatus>

再生ストリームイベントを受け取るコールバックを登録します。一度に登録できるコールバックは1つだけです。

パラメーター

callback

(value: any) => void

イベントを受け取る関数。イベントには以下のものがあります。

  • (0): ストリームが失敗しました
  • (1): ストリームが障害から回復しました
  • (2): 再生が停止しました
  • (3): ストリームのミュート状態が変更されました
  • (4): バッファアンダーランが発生しました

戻り値

Promise<AudioStatus>

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

  • (0): コールバックが登録されました
  • (-3): ストリームが初期化されていません
  • (-2): コールバックが無効です
  • (-4): コールバックは既に登録されています

/*
関数を作成し、再生イベントオブザーバーに登録して、再生の変更が発生するたびに
この関数が実行されるようにします。Promiseの解決後に返されたAudioStatus型を
statusに格納します。

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

const playbackStreamEventHandler = (event: any) => {
    console.debug('playbackStreamEventHandlerイベントを受信しました ->', event);
    switch (event.playbackStreamEvent) {
      case AudioPlaybackEvent.DIED:
        console.debug('ストリームが中断されました。ストリームID:', playbackStream.current);
        break;
      case AudioPlaybackEvent.RECOVERED:
        console.debug('ストリームが復元されました。ストリームID:', playbackStream.current);
        break;
      case AudioPlaybackEvent.STOPPED:
        console.debug('ストリームが停止しました。ストリームID:', playbackStream.current);
        break;
      case AudioPlaybackEvent.MUTE_STATE_UPDATE:
        console.debug('ストリームのミュート状態が変更されました。ストリームID:', playbackStream.current);
        console.debug('ミュート状態:', event.muteState);
        break;
      case AudioPlaybackEvent.FRAME_UNDERRUN:
        console.debug('ストリームアンダーランが発生しました。ストリームID:', playbackStream.current);
        console.debug('アンダーランの数:', event.underrunCount);
        break;
      default:
        break;
    }
  };
const status = playbackStream.registerEventObserverAsync(playbackStreamEventHandler)
.then((status) => {return status;}).catch((error) => console.log(error));


setVolumeAsync()

setVolumeAsync(gain: Int32): Promise<Int32>

個々のストリームの音量を絶対ゲイン(パーセンテージ)で設定します。設定されたゲインがストリームの音量に乗算されます。システム音量とは別の設定になります。

パラメーター

gain

Int32

音量レベル(0~100)

戻り値

Promise<Int32>

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

  • (0): 音量が設定されました
  • (-3): ストリームが初期化されていません
  • (-2): ゲイン値が無効です
  • (-5): サーバー通信エラー

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

const createAudioSourceInstance = async () => {
    const builder = new AudioPlaybackStreamBuilder();
    /*その他の構成
    ...
    ...
    ...*\/
    builder.setDuckingPolicy(StreamDuckingPolicy.EXPLICIT);
    const stream = await builder.buildAsync();
    playbackStream.current = stream;
}

const setVolumeAsyncTest = async () => {
    try {
      let setVolumeStatus = await playbackStream.current?.setVolumeAsync(70);
    } catch (err) {
      console.debug("setVolumeAsync() ERR:", err);
    }

    /*現在の再生ストリームに関連付けられたオーディオを再生するメソッドがあると想定します*\/

    playClip();
}

createAudioSourceInstance();
setVolumeAsyncTest();



setVolumeWithFadeAsync()

setVolumeWithFadeAsync(volume: Int32, duration: Int32, fadeType: AudioFadeType): Promise<Int32>

ストリームの音量をフェード効果付きで設定します。

パラメーター

volume

Int32

ターゲット音量(0~100)

duration

Int32

持続時間(ミリ秒)

fadeType

AudioFadeType

フェードカーブタイプ

戻り値

Promise<Int32>

Promise:フェードが開始されたときに解決されるプロミスオブジェクト

  • (0): 音量が設定されました
  • (-3): ストリームが初期化されていません
  • (-2): ゲイン値が無効です
  • (-5): サーバー通信エラー

startAsync()

startAsync(): Promise<AudioStatus>

ストリームの再生を開始または再開します。

戻り値

Promise<AudioStatus>

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

  • (0): 開始されました
  • (-3): ストリームが初期化されていません
  • (-8): ストリームは既に再生されています
  • (-5): サーバー通信エラー

/*
オーディオ再生ストリームを開始し、Promiseの解決後に返されたAudioStatus型を
statusに格納します。

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

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


stopAsync()

stopAsync(): Promise<AudioStatus>

再生を停止し、すべてのバッファをクリアします。バッファリングされたデータをすべて破棄します。

戻り値

Promise<AudioStatus>

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

  • (0): 停止しました
  • (-3): ストリームが初期化されていません
  • (-8): ストリームは既に停止しています
  • (-5): サーバー通信エラー

/*
オーディオ再生ストリームを停止し、Promiseの解決後に返されたAudioStatus型を
statusに格納します。

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

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


unregisterEventObserverAsync()

unregisterEventObserverAsync(): Promise<AudioStatus>

以前に登録されたイベントコールバックの登録を解除します。

戻り値

Promise<AudioStatus>

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

  • (0): コールバックの登録が解除されました
  • (-3): ストリームが初期化されていません
  • (-2): 登録されているコールバックはありません

/*
コールバック関数の登録を解除し、Promiseの解決後に返されたAudioStatus型を
statusに格納します。

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

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


writeAsync()

writeAsync(buffer: ArrayBuffer): Promise<AudioStatus>

オーディオデータを再生バッファに書き込みます。

パラメーター

buffer

ArrayBuffer

書き込むオーディオデータ

戻り値

Promise<AudioStatus>

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

  • 正の値: 書き込まれたバイト数
  • (-3): ストリームが初期化されていません
  • (-2): バッファが無効です
  • (-8): 書き込み操作が失敗しました
  • (-6): バッファがいっぱいです
  • (-5): サーバー通信エラー

/*
再生バッファーに書き込みを行い、Promiseの解決後に返されたAudioStatus型を
statusに格納します。

bufferはバッファーに書き込むバイトを含むUint8Arrayであると想定します。

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

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


Last updated: 2026年7月22日