UNPKG

@ngx-telly/plugin-vu-meter

Version:

Telly - Vu meter plugin

86 lines (80 loc) 3.74 kB
import * as _angular_core from '@angular/core'; import { OnInit, OnDestroy, OnChanges, SimpleChanges, EnvironmentProviders } from '@angular/core'; import { BehaviorSubject, Subject } from 'rxjs'; import { PlayerComponent } from '@ngx-telly/player'; declare class VuMeterService { show$: BehaviorSubject<boolean>; reconfigure$: Subject<void>; on(): void; off(): void; toggle(): void; reconfigure(): void; isVisible(): boolean; static ɵfac: _angular_core.ɵɵFactoryDeclaration<VuMeterService, never>; static ɵprov: _angular_core.ɵɵInjectableDeclaration<VuMeterService>; } interface Level { channel: string; rms: number; db: number; normalized: number; peak: number; } declare class TellyVuMeterComponent implements OnInit, OnDestroy, OnChanges { display: string; fftSize: number; channelCount: number; channelNames: string[]; peakHoldTime: number; peakDecayRate: number; peakAccelerationFactor: number; updateRateMs: number; readonly service: VuMeterService; readonly player: PlayerComponent; private readonly subscription; private readonly audioNodes; private readonly analysisState; private gestureAbortController?; private reconfigureTimeout?; private destroyed; readonly levels: _angular_core.WritableSignal<Level[]>; readonly initializing: _angular_core.WritableSignal<boolean>; readonly reconfiguring: _angular_core.WritableSignal<boolean>; readonly showVolumeWarning: _angular_core.WritableSignal<boolean>; ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; private setupVisibilitySubscription; private reconfigure; private updateChannelCount; private initializeAudioAndStartAnalysis; private initializeAudioContext; private waitForUserGesture; private waitForAudioTrack; private usesCaptureStream; private reconnectSource; private connectAudioGraphAndStartAnalysis; private buildAudioGraph; private startAnalysis; private runAnalysisLoop; private calculateChannelLevel; private updatePeakHold; private stopAnalysis; private getChannelNames; private disconnectAudioGraph; private cleanupAudioContext; static ɵfac: _angular_core.ɵɵFactoryDeclaration<TellyVuMeterComponent, never>; static ɵcmp: _angular_core.ɵɵComponentDeclaration<TellyVuMeterComponent, "telly-vu-meter", never, { "fftSize": { "alias": "fftSize"; "required": false; }; "channelCount": { "alias": "channelCount"; "required": false; }; "channelNames": { "alias": "channelNames"; "required": false; }; "peakHoldTime": { "alias": "peakHoldTime"; "required": false; }; "peakDecayRate": { "alias": "peakDecayRate"; "required": false; }; "peakAccelerationFactor": { "alias": "peakAccelerationFactor"; "required": false; }; "updateRateMs": { "alias": "updateRateMs"; "required": false; }; }, {}, never, never, true, never>; } declare class TellyVuMeterToggleComponent { icon: _angular_core.InputSignal<string>; size: _angular_core.InputSignal<string>; service: VuMeterService; title: string; onClick(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration<TellyVuMeterToggleComponent, never>; static ɵcmp: _angular_core.ɵɵComponentDeclaration<TellyVuMeterToggleComponent, "telly-vu-meter-toggle", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>; } declare function provideTellyVuMeter(): EnvironmentProviders; export { TellyVuMeterComponent, TellyVuMeterToggleComponent, VuMeterService, provideTellyVuMeter }; export type { Level };