From 48a0752f9ce0be5a6d81b0d9194a3fe260fb7f6e Mon Sep 17 00:00:00 2001 From: unanmed <1319491857@qq.com> Date: Wed, 21 Jun 2023 17:13:38 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=A7=E7=BB=ADbgm=E7=9A=84=E6=92=AD?= =?UTF-8?q?=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/audio/bgm.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/core/audio/bgm.ts b/src/core/audio/bgm.ts index ad9d789..5e0dd8f 100644 --- a/src/core/audio/bgm.ts +++ b/src/core/audio/bgm.ts @@ -3,6 +3,7 @@ import { ResourceController } from '../loader/controller'; export class BgmController extends ResourceController { playing?: BgmIds; + lastBgm?: BgmIds; /** * 添加一个bgm @@ -23,11 +24,12 @@ export class BgmController extends ResourceController { */ play(id: BgmIds, when: number = 0) { if (this.playing === id) return; - this.stop(); + this.pause(); const bgm = this.get(id); bgm.currentTime = when; bgm.play(); this.playing = id; + this.lastBgm = id; } /** @@ -42,10 +44,20 @@ export class BgmController extends ResourceController { /** * 停止当前的bgm播放 */ - stop() { + pause() { if (!has(this.playing)) return; const bgm = this.get(this.playing); bgm.pause(); + delete this.playing; + } + + /** + * 继续上一个BGM的播放 + */ + resume() { + if (has(this.playing) || !this.lastBgm) return; + const bgm = this.get(this.lastBgm); + bgm.play(); } get(id: BgmIds) {