The Audio class is a high-level wrapper around a lower-level audio system. It manages an internal audio state and provides a simplified interface for loading and controlling sound effects and music playback. It abstracts gesture-unlocking requirements and state management, making audio operations easier to use in application code.
Creation → Update → Destruction
Audio instance initializes a new AudioState via createAudioState().AudioState.name.AudioState instance, which stores all runtime audio data and flags such as unlocked../../audio, which perform the actual audio processing and state transitions.playMusicAfterGesture) likely queues or delays playback until the browser allows audio output.unlocked getter exposes whether the system has satisfied user interaction requirements for audio playback.const audio = new Audio();
// Load assets
await audio.load("bgm", "/audio/bgm.mp3");
await audio.load("click", "/audio/click.wav");
// Play sound effect
audio.play("click");
// Start background music
audio.playMusic("bgm", 0.5);
// Adjust volume
audio.setMusicVolume(0.8);
// Stop music
audio.stopMusic();
// Handle autoplay restrictions
await audio.playMusicAfterGesture("bgm", 0.5);
console.log(audio.unlocked);
AudioState – Internal state structure managing playback status and unlock state.createAudioState – Initializes the audio system state.loadAudio – Loads audio resources into the system.playSound – Plays short sound effects.playMusic – Starts background or looping music playback.stopMusic – Stops music playback.setMusicVolume – Controls music volume.playMusicAfterGesture – Handles browser gesture restrictions for autoplay audio.