Spaces:
Build error
Build error
import AudioPlayer from '@/app/components/base/audio-btn/audio' | |
declare global { | |
// eslint-disable-next-line @typescript-eslint/consistent-type-definitions | |
interface AudioPlayerManager { | |
instance: AudioPlayerManager | |
} | |
} | |
export class AudioPlayerManager { | |
private static instance: AudioPlayerManager | |
private audioPlayers: AudioPlayer | null = null | |
private msgId: string | undefined | |
private constructor() { | |
} | |
public static getInstance(): AudioPlayerManager { | |
if (!AudioPlayerManager.instance) { | |
AudioPlayerManager.instance = new AudioPlayerManager() | |
this.instance = AudioPlayerManager.instance | |
} | |
return AudioPlayerManager.instance | |
} | |
public getAudioPlayer(url: string, isPublic: boolean, id: string | undefined, msgContent: string | null | undefined, voice: string | undefined, callback: ((event: string) => {}) | null): AudioPlayer { | |
if (this.msgId && this.msgId === id && this.audioPlayers) { | |
this.audioPlayers.setCallback(callback) | |
return this.audioPlayers | |
} | |
else { | |
if (this.audioPlayers) { | |
try { | |
this.audioPlayers.pauseAudio() | |
this.audioPlayers.cacheBuffers = [] | |
this.audioPlayers.sourceBuffer?.abort() | |
} | |
catch (e) { | |
} | |
} | |
this.msgId = id | |
this.audioPlayers = new AudioPlayer(url, isPublic, id, msgContent, voice, callback) | |
return this.audioPlayers | |
} | |
} | |
public resetMsgId(msgId: string) { | |
this.msgId = msgId | |
this.audioPlayers?.resetMsgId(msgId) | |
} | |
} | |