UNPKG

@byomakase/omakase-player

Version:

## Omakase Player - Open source JavaScript framework for building frame accurate video experiences

119 lines (118 loc) 3.71 kB
import { Api } from './api'; import { Destroyable, OmpAudioTrack, SidecarAudioLoadedEvent, SidecarAudioLoadingEvent, VolumeChangeEvent } from '../types'; import { AudioRouterApi } from './audio-router-api'; import { AudioPeakProcessorApi } from './audio-peak-processor-api'; import { AudioMeterStandard, OmpSidecarAudioState } from '../video'; import { Observable } from 'rxjs'; import { OmpSidecarAudioInputSoloMuteState } from '../video/model'; import { OmpAudioPeakProcessor } from '../video/audio-peak-processor'; import { OmpAudioRouter } from '../video/audio-router'; import { OmpAudioEffectsGraphDef, OmpAudioEffectsGraphConnection } from '../audio/model'; import { OmpAudioEffectFilter, OmpAudioEffectParam } from '../audio'; /** * For Sidecar audio operations */ export interface SidecarAudioApi extends Api, Destroyable { /** * Fires when sidecar audio starts loading * @readonly */ onLoading$: Observable<SidecarAudioLoadingEvent>; /** * Fires @{link SidecarAudioLoadedEvent} when sidecar audio is loaded * @readonly */ onLoaded$: Observable<SidecarAudioLoadedEvent | undefined>; /** * Fires when sidecar audio starts or stops buffering current video time. * Always emits the current value on subscription. * @readonly */ onVideoCurrentTimeBuffering$: Observable<boolean>; /** * Fires on state change * @readonly */ onStateChange$: Observable<OmpSidecarAudioState>; /** * Fires on audio router solo/mute action * @readonly */ onInputSoloMute$: Observable<OmpSidecarAudioInputSoloMuteState>; /** * Fires on volume change * @readonly */ onVolumeChange$: Observable<VolumeChangeEvent>; /** * Starts loading sidecar audio track */ loadSource(): Observable<SidecarAudioLoadedEvent>; createAudioRouter(inputsNumber?: number, outputsNumber?: number): OmpAudioRouter; createAudioPeakProcessor(audioMeterStandard?: AudioMeterStandard): Observable<OmpAudioPeakProcessor>; setEffectsGraph(effectsGraphDef: OmpAudioEffectsGraphDef, effectsGraphConnection: OmpAudioEffectsGraphConnection): Observable<void>; removeEffectsGraph(effectsGraphConnection: OmpAudioEffectsGraphConnection): void; setAudioEffectsParams(param: OmpAudioEffectParam, effectGraphConnection: OmpAudioEffectsGraphConnection, filter?: OmpAudioEffectFilter): void; /** * Sidecar audio track */ get audioTrack(): OmpAudioTrack; /** * Sidecar audio router */ get audioRouter(): AudioRouterApi | undefined; /** * Sidecar audio peak processor */ get audioPeakProcessor(): AudioPeakProcessorApi | undefined; /** * Sidecar audio track active status */ get isActive(): boolean; /** * Activates track */ activate(): void; /** * Deactivates track */ deactivate(): void; /** * @returns Volume level */ getVolume(): number; /** * Sets volume level. Unmutes audio. * @param volume Decimal value between [0, 1] */ setVolume(volume: number): void; /** * Mute */ mute(): void; /** * Unmute */ unmute(): void; /** * @returns Is audio muted */ isMuted(): boolean; /** * Toggles mute / unmute */ toggleMuteUnmute(): void; /** * Sets mute / unmute * @param muted */ setMuted(muted: boolean): void; /** * @returns Sidecar audio state */ getSidecarAudioState(): OmpSidecarAudioState; /** * @returns Sidecar audio input state */ getSidecarAudioInputSoloMuteState(): OmpSidecarAudioInputSoloMuteState; }