@byomakase/omakase-player
Version:
## Omakase Player - Open source JavaScript framework for building frame accurate video experiences
34 lines (33 loc) • 1.74 kB
TypeScript
import { Destroyable, OmpAudioRouterChangeEvent } from '../types';
import { Observable, Subject } from 'rxjs';
import { AudioInputOutputNode, OmpAudioRouterState } from './model';
import { AudioRouterApi } from '../api/audio-router-api';
export declare class OmpAudioRouter implements AudioRouterApi, Destroyable {
readonly onChange$: Subject<OmpAudioRouterChangeEvent>;
protected _inputsNumber: number;
protected _outputsNumber: number;
protected _sourceAudioNode?: AudioNode;
protected _channelSplitterNode: ChannelSplitterNode;
protected _channelMergerNode: ChannelMergerNode;
/**
* Mapped by inputNumber, then by outputNumber
* @protected
*/
protected _audioInputOutputNodes: Map<number, Map<number, AudioInputOutputNode>>;
protected _destroyed$: Subject<void>;
protected static readonly defaultAudioOutputsResolver: (maxChannelCount: number) => number;
constructor(audioContext: AudioContext, inputsNumber: number, outputsNumberResolver?: (maxChannelCount: number) => number);
get isSourceConnected(): boolean;
disconnectSource(): void;
connectSource(audioNode: AudioNode): void;
routeAudioInputOutputNodes(newAudioInputOutputNodes: AudioInputOutputNode[]): Observable<void>;
routeAudioInputOutputNode(newAudioInputOutputNode: AudioInputOutputNode): Observable<void>;
getAudioInputOutputNodes(): AudioInputOutputNode[][];
get sourceAudioNode(): AudioNode | undefined;
get inputsNumber(): number;
get outputsNumber(): number;
getAudioRouterState(): OmpAudioRouterState;
protected dispatchOnChange(): void;
protected _routeAudioInputOutputNode(newNode: AudioInputOutputNode, emitEvent?: boolean): void;
destroy(): void;
}