Skip to content
Snippets Groups Projects
Unverified Commit ccb951f1 authored by Acid Chicken (硫酸鶏)'s avatar Acid Chicken (硫酸鶏) Committed by GitHub
Browse files

chore: create AudioContext when it is needed (#12460)

parent 755ca978
No related branches found
No related tags found
No related merge requests found
......@@ -5,7 +5,7 @@
import { defaultStore } from '@/store.js';
const ctx = new AudioContext();
let ctx: AudioContext;
const cache = new Map<string, AudioBuffer>();
let canPlay = true;
......@@ -65,6 +65,9 @@ export const soundsTypes = [
] as const;
export async function loadAudio(file: string, useCache = true) {
if (ctx == null) {
ctx = new AudioContext();
}
if (useCache && cache.has(file)) {
return cache.get(file)!;
}
......
......@@ -58,6 +58,7 @@ import { useStream } from '@/stream.js';
import number from '@/filters/number.js';
import * as sound from '@/scripts/sound.js';
import { deepClone } from '@/scripts/clone.js';
import { defaultStore } from '@/store.js';
const name = 'jobQueue';
......@@ -102,7 +103,9 @@ const prev = reactive({} as typeof current);
let jammedAudioBuffer: AudioBuffer | null = $ref(null);
let jammedSoundNodePlaying: boolean = $ref(false);
sound.loadAudio('syuilo/queue-jammed').then(buf => jammedAudioBuffer = buf);
if (defaultStore.state.sound_masterVolume) {
sound.loadAudio('syuilo/queue-jammed').then(buf => jammedAudioBuffer = buf);
}
for (const domain of ['inbox', 'deliver']) {
prev[domain] = deepClone(current[domain]);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment