mirror of
https://github.com/unanmed/HumanBreak.git
synced 2025-04-30 19:33:24 +08:00
260 lines
4.3 KiB
Markdown
260 lines
4.3 KiB
Markdown
# 类 BgmController
|
||
|
||
渲染进程类,游戏进程不能直接使用,继承自 [`ResourceController`](./resource-controller.md)
|
||
|
||
- 实例成员
|
||
- [`stack`](#stack)
|
||
- [`redoStack`](#redostack)
|
||
- [`now`](#now)
|
||
- [`transitionTime`](#transitiontime)
|
||
- [`transitionCurve`](#transitioncurve)
|
||
- [`volume`](#volume)
|
||
- [`disable`](#disable)
|
||
- [`playing`](#playing)
|
||
- 实例方法
|
||
- [`add`](#add)
|
||
- [`load`](#load)
|
||
- [`changeTo`](#changeto)
|
||
- [`pause`](#pause)
|
||
- [`resume`](#resume)
|
||
- [`play`](#play)
|
||
- [`undo`](#undo)
|
||
- [`redo`](#redo)
|
||
- [`setTransition`](#settransition)
|
||
- [`get`](#get)
|
||
- 实例事件
|
||
- [`changeBgm`](#changebgm-事件)
|
||
- [`pause`](#pause-事件)
|
||
- [`resume`](#resume-事件)
|
||
|
||
## 部分接口说明
|
||
|
||
```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
|
||
```
|
||
|
||
- 参考[切换音乐](../../guide/audio.md#切换-bgm)
|
||
|
||
## 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
|
||
```
|
||
|
||
- 参考[切换音乐](../../guide/audio.md#切换-bgm)
|
||
|
||
## undo()
|
||
|
||
```ts
|
||
declare function undo(): void
|
||
```
|
||
|
||
- 方法说明
|
||
|
||
撤销当前播放,改为播放前一个 bgm
|
||
|
||
## redo()
|
||
|
||
```ts
|
||
declare function redo(): void
|
||
```
|
||
|
||
- 方法说明
|
||
|
||
取消上一次的撤销,改为播放上一次撤销的 bgm
|
||
|
||
## setTransition()
|
||
|
||
```ts
|
||
declare function setTransition(time?: number, curve?: TimingFn): void
|
||
```
|
||
|
||
- 方法说明
|
||
|
||
修改切歌的渐变信息,参考[设置渐变参数](../../guide/audio.md#设置渐变参数)
|
||
|
||
## 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
|
||
}
|
||
```
|
||
|
||
- 事件说明
|
||
|
||
当音乐继续播放时触发,默认行为为继续播放
|