HumanBreak/docs/api/class/audio-player.md
2024-03-01 19:52:30 +08:00

3.1 KiB
Raw Blame History

类 AudioPlayer

渲染进程类,游戏进程不能直接使用,继承自 EventEmitter

index

declare var index: number

data

declare var data: ArrayBuffer

buffer

declare var buffer: AudioBuffer | null

source

declare var source: AudioBufferSourceNode | undefined

baseNode

declare var baseNode: BaseNode[]
  • 成员说明

    包含了音频在播放时经过的每个音频处理路由的根节点,参考自定义音频路由

  • 接口 BaseNode

    interface BaseNode {
        node: AudioNode;
        channel?: number;
    }
    
    • node: 路由节点
    • channel: 连接至的音频入口input channel

constructor()

interface AudioPlayer {
    new(data: ArrayBuffer): AudioPlayer
}
  • 参数说明

    • data: 音频的 ArrayBuffer 数据,一般是 xhr 请求的 response

update()

declare function update(data: ArrayBuffer): Promise<void>
  • 方法说明

    更新音频的 ArrayBuffer 数据,并解析为 AudioBuffer,赋值给 buffer 属性

getSource()

declare function getSource(): AudioBufferSourceNode
  • 方法说明

    获取音频的源节点

play()

declare function play(when?: number, offset?: number, duration?: number): void
  • 参数说明

    • when: 声音开始播放的时间,注意不是声音从哪开始播放。时间与 ac 共用一个时间轴,即在 ac 的何时播放这个音频,如果小于 accurrentTime,那么会立刻开始播放,单位是秒
    • offset: 从声音的何时开始播放,例如填 5 就是从声音的第 5 秒开始播放
    • duration: 指定声音播放多长时间,单位为秒

ready()

declare function ready(): void
  • 方法说明

    准备音频路由,将源节点连接至各个音频路由根节点

getDestination()

declare function getDestination(): AudioDestinationNode
  • 方法说明

    获取音频目的地节点

ac

declare var ac: AudioContext
  • 静态成员说明

    音频处理上下文实例所有的音频处理bgm 除外)都是用它来实现的

static index

declare var index: number

play 事件

interface AudioPlayerEvent {
    play: (node: AudioBufferSourceNode) => void
}

update 事件

interface AudioPlayerEvent {
    update: (audio: AudioBuffer) => void
}

end 事件

interface AudioPlayerEvent {
    end: (node: AudioBufferSourceNode) => void
}