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.
| Parameter | Type | Description |
|---|---|---|
id | string | Unique identifier for the sound |
url | string | URL or path to the audio file |
signal | AbortSignal (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
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.