@exmg/livery
Version:
Ex Machina Group Livery Web SDK.
67 lines (66 loc) • 2 kB
TypeScript
import { LitElement } from 'lit-element';
declare global {
interface HTMLElementTagNameMap {
'livery-vu-meter': LiveryVuMeter;
}
}
/**
* Element defined as `<livery-vu-meter>` which shows a VU meter for an HTMLMediaElement.
*
* To activate this element set the `media` property to point to your HTMLMediaElement
* and then either click this element or call the `start()` method from a user event (e.g: click) listener.
*
* The browser needs to support AudioContext for this to work.
*
* Use this element's `muted` and `volume` attributes and `volumechange` event instead of the ones from `media`.
*/
export declare class LiveryVuMeter extends LitElement {
static readonly styles: import("lit-element").CSSResult;
/**
* Media element to bind to.
*/
get media(): LiveryVuMeter['_media'];
set media(value: LiveryVuMeter['_media']);
/**
* If true then audio is muted.
*/
get muted(): boolean;
set muted(value: boolean);
/**
* Audio volume, from 0.0 (silent) to 1.0 (loudest).
*/
get volume(): number;
set volume(value: number);
private _media?;
private _muted;
private _volume;
private active?;
private log;
private meters?;
private paused;
constructor();
static isSupported(): boolean;
disconnectedCallback(): void;
firstUpdated(): void;
/**
* Returns true if VU Meter is active, false otherwise.
*/
isActive(): boolean;
render(): import("lit-element").TemplateResult;
/**
* Create audio context, connect media to it and start measuring volume.
*
* This needs to be called from a user event (e.g: `click`) to be allowed to work by browsers.
*/
start(): void;
/**
* Stop measuring volume and close audio context.
*/
stop(): void;
private getByteVolumes;
private getElement;
private handleError;
private onAnimationFrame;
private onMediaVolumeChange;
private toggle;
}