类 BgmController
渲染进程类,游戏进程不能直接使用,继承自 ResourceController
- 实例成员
- 实例方法
- 实例事件
部分接口说明
ts
interface BgmEmits {
preventDefault: () => void
}事件监听参数,用于阻止默认行为,例如切歌、暂停、继续
stack
ts
declare var stack: string[]成员说明
播放栈,存储了之前播放的最多 10 个 bgm
redoStack
ts
declare var redoStack: string[]成员说明
恢复栈,undo 操作之后会存入这里,从而可以被 redo
now
ts
declare var now: string | undefined成员说明
当前正在播放的 bgm
transitionTime
ts
declare var transitionTime: number成员说明
切歌或者暂停等操作的音乐渐变时长
transitionCurve
ts
declare var transitionCurve: TimingFn成员说明
切歌或者暂停等操作的音乐音量渐变曲线
volume
ts
declare var volume: number成员说明
当前的音乐音量
disable
ts
declare var disable: boolean成员说明
是否关闭了音乐
playing
ts
declare var playing: boolean成员说明
是否正在播放音乐
add()
ts
declare function add(uri: string, data: HTMLAudioElement): void参数说明
id: bgm 的uri,由于 bgm 是一类资源,因此uri为bgms.xxx的形式data: bgm 音频元素
方法说明
添加一个音乐
load()
ts
declare function load(id: string): void方法说明
预先加载一个音乐,从而在播放音乐的时候不会产生卡顿
changeTo()
ts
declare function changeTo(id: string, when: number = -1, noStack: boolean = false): void- 参考切换音乐
pause()
ts
declare function pause(transition: boolean = true): void方法说明
暂停音乐播放,继续播放时将会延续暂停的时刻
resume()
ts
declare function resume(transition: boolean = true): void方法说明
继续当前 bgm 的播放,从上一次暂停的时刻开始播放
play()
ts
declare function play(id: string, when: number = 0, noStack: boolean = false): void- 参考切换音乐
undo()
ts
declare function undo(): void方法说明
撤销当前播放,改为播放前一个 bgm
redo()
ts
declare function redo(): void方法说明
取消上一次的撤销,改为播放上一次撤销的 bgm
setTransition()
ts
declare function setTransition(time?: number, curve?: TimingFn): void方法说明
修改切歌的渐变信息,参考设置渐变参数
get()
ts
declare function get(id: string): HTMLAudioElement参数说明
id: 音乐的名称,不是 uri
方法说明
根据音乐的名称获取到对应的音频元素
changeBgm 事件
ts
interface BgmControllerEvent {
changeBgm: (ev: BgmEmits, id: string, before: string) => void
}事件说明
当歌曲发生切换时触发,包括但不限于直接切歌、撤销、恢复。默认行为为切歌
pause 事件
ts
interface BgmControllerEvent {
pause: (ev: BgmEmits, id: string) => void
}事件说明
当音乐暂停时触发,默认行为为暂停
resume 事件
ts
interface BgmControllerEvent {
resume: (ev: BgmEmits, id: string) => void
}事件说明
当音乐继续播放时触发,默认行为为继续播放