feat: 接入激励视频
This commit is contained in:
@@ -10,6 +10,7 @@ export class AudioManager {
|
||||
private _clickAudio: AudioClip | null = null;
|
||||
private _hostNode: Node | null = null;
|
||||
private _audioSource: AudioSource | null = null;
|
||||
private _pausedAudioSources: AudioSource[] = [];
|
||||
|
||||
static get instance(): AudioManager {
|
||||
if (!this._instance) {
|
||||
@@ -30,6 +31,34 @@ export class AudioManager {
|
||||
this._playOneShot(this._clickAudio);
|
||||
}
|
||||
|
||||
pausePlayingAudioSources(): void {
|
||||
if (!this._hostNode?.isValid) {
|
||||
return;
|
||||
}
|
||||
|
||||
this._pausedAudioSources = [];
|
||||
const audioSources = this._hostNode.getComponentsInChildren(AudioSource);
|
||||
audioSources.forEach((audioSource) => {
|
||||
if (!audioSource?.isValid || !audioSource.playing) {
|
||||
return;
|
||||
}
|
||||
|
||||
audioSource.pause();
|
||||
this._pausedAudioSources.push(audioSource);
|
||||
});
|
||||
}
|
||||
|
||||
resumePausedAudioSources(): void {
|
||||
const pausedAudioSources = this._pausedAudioSources;
|
||||
this._pausedAudioSources = [];
|
||||
|
||||
pausedAudioSources.forEach((audioSource) => {
|
||||
if (audioSource?.isValid && !audioSource.playing) {
|
||||
audioSource.play();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private _playOneShot(clip: AudioClip | null): void {
|
||||
if (!clip) {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user