From 1e54a1f53df1ff8a44df792eef4a7c006975122f Mon Sep 17 00:00:00 2001 From: Bao Nguyen Date: Fri, 17 Feb 2023 15:19:41 +0700 Subject: [PATCH] move startup sound playing to welcome scene --- src/routes/xp/desktop.svelte | 21 --------------------- src/routes/xp/welcome.svelte | 27 +++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 21 deletions(-) diff --git a/src/routes/xp/desktop.svelte b/src/routes/xp/desktop.svelte index 061a434..6113e8e 100644 --- a/src/routes/xp/desktop.svelte +++ b/src/routes/xp/desktop.svelte @@ -53,7 +53,6 @@ ]; let welcome_scene; - let fallback_timer; onMount(async () => { //load other pure js lib @@ -65,26 +64,6 @@ ]); welcome_scene.self = welcome_scene; - fallback_timer = setTimeout(() => { - welcome_scene.destroy(); - }, 7000) - - let welcome_audio = new Audio("/audio/xp_startup.mp3"); - welcome_audio.addEventListener("canplaythrough", (e) => { - console.log('canplaythrough'); - if(welcome_scene){ - welcome_audio.play().catch(async (e) => { - await utils.sleep(4000); - clearTimeout(fallback_timer); - welcome_scene.destroy(); - }); - } - }); - welcome_audio.addEventListener("ended", (e) => { - console.log("xp_startup audio ended"); - clearTimeout(fallback_timer); - welcome_scene.destroy(); - }); }); diff --git a/src/routes/xp/welcome.svelte b/src/routes/xp/welcome.svelte index e730d10..081a519 100644 --- a/src/routes/xp/welcome.svelte +++ b/src/routes/xp/welcome.svelte @@ -4,7 +4,34 @@ export let self; + let fallback_timer; + let destroyed = false; + + onMount(() => { + + let welcome_audio = new Audio("/audio/xp_startup.mp3"); + welcome_audio.addEventListener("canplaythrough", (e) => { + console.log('canplaythrough'); + if(!destroyed){ + welcome_audio.play().catch(async (e) => { + }); + } + }); + + welcome_audio.addEventListener("ended", (e) => { + console.log("xp_startup audio ended"); + clearTimeout(fallback_timer); + self.destroy(); + }); + + fallback_timer = setTimeout(() => { + self.destroy(); + }, 7000) + + }) + export function destroy(){ + destroyed = true; self.$destroy(); }