@ngx-telly/plugin-vu-meter
Version:
Telly - Vu meter plugin
51 lines (50 loc) • 2.4 kB
TypeScript
import { OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import { VuMeterService } from '../../vu-meter.service';
import { PlayerComponent } from '@ngx-telly/player';
import * as i0 from "@angular/core";
export interface Level {
channel: string;
rms: number;
db: number;
normalized: number;
peak: number;
}
export declare class TellyVuMeterComponent implements OnInit, OnDestroy, OnChanges {
display: string;
fftSize: number;
channelCount: number;
channelNames: string[];
peakHoldTime: number;
peakDecayRate: number;
peakAccelerationFactor: number;
peakSmoothingFactor: number;
updateRateMs: number;
readonly service: VuMeterService;
readonly player: PlayerComponent;
private readonly subscription;
private readonly audioNodes;
private readonly analysisState;
readonly levels: import("@angular/core").WritableSignal<Level[]>;
readonly reconfiguring: import("@angular/core").WritableSignal<boolean>;
ngOnInit(): void;
ngOnChanges(changes: SimpleChanges): void;
ngOnDestroy(): void;
trackByChannel(index: number, level: Level): string;
private setupVisibilitySubscription;
private reconfigure;
private updateChannelCount;
private initializeAudioAndStartAnalysis;
private initializeAudioContext;
private connectAudioGraphAndStartAnalysis;
private buildAudioGraph;
private startAnalysis;
private runAnalysisLoop;
private calculateChannelLevel;
private updatePeakHold;
private stopAnalysis;
private getChannelNames;
private disconnectAudioGraph;
private cleanupAudioContext;
static ɵfac: i0.ɵɵFactoryDeclaration<TellyVuMeterComponent, never>;
static ɵcmp: i0.ɵɵ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; }; "peakSmoothingFactor": { "alias": "peakSmoothingFactor"; "required": false; }; "updateRateMs": { "alias": "updateRateMs"; "required": false; }; }, {}, never, never, true, never>;
}