clicktone
Version:
ClickTone is a lightweight helper for UI sound feedback. It wraps the Web Audio API, giving you instant click‑sounds with volume control, throttling, callbacks, and an iOS resume workaround.
34 lines (33 loc) • 891 B
TypeScript
declare global {
interface Window {
webkitAudioContext?: typeof AudioContext;
}
}
type FileSource = string | HTMLSourceElement | {
id: string;
};
declare class ClickTone {
private readonly fileSource;
private readonly volume;
private readonly callback;
private readonly throttle;
private readonly debug;
private lastClickTime;
private readonly audioCache;
private audioContext;
constructor({ file, volume, callback, throttle, debug, }: {
file: FileSource;
volume?: number;
callback?: ((error?: Error) => void) | null;
throttle?: number;
debug?: boolean;
});
private resolveFileUrl;
private initAudioContext;
private iOSFixAudioContext;
private fetchAndDecodeAudio;
private playAudio;
private throttleFn;
play(file?: FileSource): void;
}
export default ClickTone;