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 @@ ...@@ -5,7 +5,7 @@
import { defaultStore } from '@/store.js'; import { defaultStore } from '@/store.js';
const ctx = new AudioContext(); let ctx: AudioContext;
const cache = new Map<string, AudioBuffer>(); const cache = new Map<string, AudioBuffer>();
let canPlay = true; let canPlay = true;
...@@ -65,6 +65,9 @@ export const soundsTypes = [ ...@@ -65,6 +65,9 @@ export const soundsTypes = [
] as const; ] as const;
export async function loadAudio(file: string, useCache = true) { export async function loadAudio(file: string, useCache = true) {
if (ctx == null) {
ctx = new AudioContext();
}
if (useCache && cache.has(file)) { if (useCache && cache.has(file)) {
return cache.get(file)!; return cache.get(file)!;
} }
......
...@@ -58,6 +58,7 @@ import { useStream } from '@/stream.js'; ...@@ -58,6 +58,7 @@ import { useStream } from '@/stream.js';
import number from '@/filters/number.js'; import number from '@/filters/number.js';
import * as sound from '@/scripts/sound.js'; import * as sound from '@/scripts/sound.js';
import { deepClone } from '@/scripts/clone.js'; import { deepClone } from '@/scripts/clone.js';
import { defaultStore } from '@/store.js';
const name = 'jobQueue'; const name = 'jobQueue';
...@@ -102,7 +103,9 @@ const prev = reactive({} as typeof current); ...@@ -102,7 +103,9 @@ const prev = reactive({} as typeof current);
let jammedAudioBuffer: AudioBuffer | null = $ref(null); let jammedAudioBuffer: AudioBuffer | null = $ref(null);
let jammedSoundNodePlaying: boolean = $ref(false); 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']) { for (const domain of ['inbox', 'deliver']) {
prev[domain] = deepClone(current[domain]); 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