@byomakase/omakase-player
Version:
## Omakase Player - Open source JavaScript framework for building frame accurate video experiences
119 lines (118 loc) • 3.71 kB
TypeScript
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;
}