mirror of
https://github.com/unanmed/HumanBreak.git
synced 2025-04-19 17:16:08 +08:00
3.1 KiB
3.1 KiB
类 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
的何时播放这个音频,如果小于ac
的currentTime
,那么会立刻开始播放,单位是秒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
}