EZ Web Audio / createSound
Function: createSound()
Call Signature
createSound(
input):Promise<Sound<BaseSoundEventMap>>
Defined in: packages/core/src/index.ts:435
Create a Sound from an audio file URL, ArrayBuffer, Blob, or File.
Sound is for one-shot audio playback (sound effects, UI sounds). Each call to .play() creates a new audio source, allowing overlapping playback. Use createTrack instead for music with pause/resume/seek.
Parameters
input
URL string, ArrayBuffer, Blob, or File containing audio data
Returns
Promise<Sound<BaseSoundEventMap>>
Promise resolving to a Sound instance
Throws
If the audio file cannot be loaded or decoded
Example
import { createSound } from 'ez-web-audio'
// From URL
const click = await createSound('click.mp3')
click.play()
// From ArrayBuffer (e.g., from fetch or File API)
const response = await fetch('click.mp3')
const buffer = await response.arrayBuffer()
const click2 = await createSound(buffer)
// From File (e.g., drag-and-drop)
input.addEventListener('change', async (e) => {
const file = e.target.files[0]
const sound = await createSound(file)
sound.play()
})Call Signature
createSound(
audioContext,input):Promise<Sound<BaseSoundEventMap>>
Defined in: packages/core/src/index.ts:436
Create a Sound from an audio file URL, ArrayBuffer, Blob, or File.
Sound is for one-shot audio playback (sound effects, UI sounds). Each call to .play() creates a new audio source, allowing overlapping playback. Use createTrack instead for music with pause/resume/seek.
Parameters
audioContext
BaseAudioContext
input
URL string, ArrayBuffer, Blob, or File containing audio data
Returns
Promise<Sound<BaseSoundEventMap>>
Promise resolving to a Sound instance
Throws
If the audio file cannot be loaded or decoded
Example
import { createSound } from 'ez-web-audio'
// From URL
const click = await createSound('click.mp3')
click.play()
// From ArrayBuffer (e.g., from fetch or File API)
const response = await fetch('click.mp3')
const buffer = await response.arrayBuffer()
const click2 = await createSound(buffer)
// From File (e.g., drag-and-drop)
input.addEventListener('change', async (e) => {
const file = e.target.files[0]
const sound = await createSound(file)
sound.play()
})