ngx-audio-wave
Version:
A modern, accessible audio wave visualization component for Angular 20+ with comprehensive keyboard navigation and screen reader support.
75 lines (72 loc) • 4.9 kB
TypeScript
import * as _angular_core from '@angular/core';
import { AfterViewInit, OnDestroy } from '@angular/core';
import { SafeUrl } from '@angular/platform-browser';
declare class NgxAudioWave implements AfterViewInit, OnDestroy {
readonly audioSrc: _angular_core.InputSignal<string | SafeUrl>;
readonly color: _angular_core.InputSignal<string>;
readonly height: _angular_core.InputSignalWithTransform<number, unknown>;
readonly gap: _angular_core.InputSignalWithTransform<number, unknown>;
readonly rounded: _angular_core.InputSignalWithTransform<boolean, unknown>;
readonly hideBtn: _angular_core.InputSignalWithTransform<boolean, unknown>;
readonly skip: _angular_core.InputSignalWithTransform<number, unknown>;
readonly volume: _angular_core.InputSignalWithTransform<number, unknown>;
readonly playbackRate: _angular_core.InputSignalWithTransform<number, unknown>;
readonly loop: _angular_core.InputSignalWithTransform<boolean, unknown>;
readonly ariaLabel: _angular_core.InputSignal<string>;
readonly playButtonLabel: _angular_core.InputSignal<string>;
readonly pauseButtonLabel: _angular_core.InputSignal<string>;
readonly progressBarLabel: _angular_core.InputSignal<string>;
readonly isPaused: _angular_core.WritableSignal<boolean>;
readonly isLoading: _angular_core.WritableSignal<boolean>;
readonly hasError: _angular_core.WritableSignal<boolean>;
readonly currentVolume: _angular_core.WritableSignal<number>;
readonly currentPlaybackRate: _angular_core.WritableSignal<number>;
readonly isLooping: _angular_core.WritableSignal<boolean>;
readonly progressText: _angular_core.Signal<string>;
readonly statusText: _angular_core.Signal<"Loading audio" | "Error loading audio" | "Audio paused" | "Audio playing">;
readonly exactPlayedPercent: _angular_core.Signal<number>;
readonly exactCurrentTime: _angular_core.WritableSignal<number>;
readonly exactDuration: _angular_core.WritableSignal<number>;
/** @deprecated This property will be removed in version 21.0.0. Use exactPlayedPercent instead. */
readonly playedPercent: _angular_core.Signal<number>;
/** @deprecated This property will be removed in version 21.0.0. Use exactCurrentTime instead. */
readonly currentTime: _angular_core.Signal<number>;
/** @deprecated This property will be removed in version 21.0.0. Use exactDuration instead. */
readonly duration: _angular_core.Signal<number>;
protected readonly normalizedData: _angular_core.WritableSignal<number[]>;
protected readonly clipPath: _angular_core.Signal<string>;
protected readonly width: _angular_core.Signal<number>;
private readonly platformId;
private readonly isPlatformBrowser;
private readonly domSanitizer;
private readonly httpClient;
private readonly audioWaveService;
private readonly destroyRef;
private audioRef;
ngAfterViewInit(): void;
ngOnDestroy(): void;
play(time?: number): void;
pause(): void;
stop(): void;
setVolume(volume: number): void;
mute(): void;
unmute(): void;
toggleMute(): void;
setPlaybackRate(rate: number): void;
resetPlaybackRate(): void;
increasePlaybackRate(): void;
decreasePlaybackRate(): void;
setLoop(loop: boolean): void;
enableLoop(): void;
disableLoop(): void;
toggleLoop(): void;
setTime(mouseEvent: MouseEvent): void;
private calculatePercent;
private startInterval;
private fetchAudio;
protected pauseChange(event: Event): void;
protected onKeyDown(event: KeyboardEvent): void;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxAudioWave, never>;
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxAudioWave, "ngx-audio-wave", never, { "audioSrc": { "alias": "audioSrc"; "required": true; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "hideBtn": { "alias": "hideBtn"; "required": false; "isSignal": true; }; "skip": { "alias": "skip"; "required": false; "isSignal": true; }; "volume": { "alias": "volume"; "required": false; "isSignal": true; }; "playbackRate": { "alias": "playbackRate"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "playButtonLabel": { "alias": "playButtonLabel"; "required": false; "isSignal": true; }; "pauseButtonLabel": { "alias": "pauseButtonLabel"; "required": false; "isSignal": true; }; "progressBarLabel": { "alias": "progressBarLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
export { NgxAudioWave };