Skip to main content

loadSound

loadSound(id: string, url: string, signal?: AbortSignal): Promise<void>;

Load a single sound by its ID and URL. The sound is loaded into memory and can be played immediately. Use loadSounds to load multiple sounds at once.

An optional AbortSignal can be passed to cancel an in-flight load — useful when a component unmounts before a pending load completes. This prevents uncaught promise rejections; an AbortError propagates as-is without triggering error logging or ERROR events.

ParameterTypeDescription
idstringUnique identifier for the sound
urlstringURL or path to the audio file
signalAbortSignal (optional)Signal from an AbortController to cancel the load

Example

// @ts-ignore
import tokyoTrain from "../../assets/sounds/tokyo-train-melody.mp3";

import { SoundManager } from 'sound-manager-ts';

const soundManager = new SoundManager();

// Load a single sound
await soundManager.loadSound('tokyo-train', tokyoTrain);
// Or use a URL directly:
// await soundManager.loadSound('tokyo-train', 'https://example.com/tokyo-train-melody.mp3');

// Now play it
soundManager.play('tokyo-train', { loop: true });

AbortSignal Example

import { SoundManager } from 'sound-manager-ts';

const soundManager = new SoundManager();

const controller = new AbortController();

soundManager.loadSound('bg', '/audio/bg.mp3', controller.signal)
.catch(err => {
if (err.name !== 'AbortError') throw err;
// AbortError is silently handled — no error logging, no ERROR event
});

// Cancel on cleanup (e.g. when component unmounts):
controller.abort();

Load Sounds

Sound Library
HelicopterhelicopterNot loaded
Tokyo Traintokyo-trainNot loaded
Bells Melodybells-melodyNot loaded
Techno Tunetechno-tuneNot loaded
Tip: Use loadSound(id, url) to load a single sound or loadSounds([]) to batch-load multiple sounds. Loaded sounds can be played immediately. Use unloadSound(id) to free memory.