UNPKG

@phenixrts/sdk

Version:
66 lines (65 loc) 3.28 kB
import { BitsPerSecond, Millisecond } from '../../units/Units'; import ReadOnlySubject from '../../rx/ReadOnlySubject'; import Dimension from '../../video/Dimension'; import { IRtcMonitorStatistic } from '../../rtc/RtcConnectionMonitor'; import IPeerConnection from '../../rtc/IPeerConnection'; import { EncodedEdgeToken } from '../../edgeAuth/EncodedEdgeToken'; import EndPoint, { IStream } from '../discovery/EndPoint'; import { IChannel } from '../channels/IChannel'; import ChannelState from '../channels/ChannelState'; import { DecodedFrameTimingInformation, RenderedFrameTimingInformation } from '../frameTiming/FrameTimingInformation'; import IsoBmffChannel from '../isobmffchannels/IsoBmffChannel'; import { IsoBmffPlayerState } from '../isobmffchannels/IsoBmffPlayer'; import ChannelProtectionManager from './ChannelProtectionManager'; export default class ProtectedChannel implements IChannel { private readonly _disposables; private readonly _channel; constructor(channel: IsoBmffChannel, channelProtectionManager: ChannelProtectionManager); set videoElement(videoElement: HTMLVideoElement); get videoElement(): HTMLVideoElement | null; set token(value: EncodedEdgeToken); get token(): EncodedEdgeToken; get tokenExpiring(): ReadOnlySubject<boolean>; get state(): ReadOnlySubject<ChannelState>; get exists(): ReadOnlySubject<boolean | null>; get authorized(): ReadOnlySubject<boolean>; get online(): ReadOnlySubject<boolean>; get loading(): ReadOnlySubject<boolean>; get playing(): ReadOnlySubject<boolean>; get standby(): ReadOnlySubject<boolean>; get stopped(): ReadOnlySubject<boolean>; get autoMuted(): ReadOnlySubject<boolean>; get autoPaused(): ReadOnlySubject<boolean>; get endPoint(): ReadOnlySubject<EndPoint | null>; get targetLag(): ReadOnlySubject<Millisecond>; get lag(): ReadOnlySubject<Millisecond | undefined>; get resolution(): ReadOnlySubject<Dimension>; get failureCount(): ReadOnlySubject<number>; get streamId(): string; get stream(): ReadOnlySubject<IStream | null>; get bitrateLimit(): BitsPerSecond; get peerConnection(): ReadOnlySubject<IPeerConnection | null>; get mediaStream(): ReadOnlySubject<MediaStream | null>; get rtcStatistics(): ReadOnlySubject<IRtcMonitorStatistic | null>; get isFrameTimingInformationEnabled(): ReadOnlySubject<boolean>; get decodedFrameTimingInformation(): ReadOnlySubject<DecodedFrameTimingInformation | null>; get renderedFrameTimingInformation(): ReadOnlySubject<RenderedFrameTimingInformation | null>; get playerState(): ReadOnlySubject<IsoBmffPlayerState>; play(): Promise<void>; resume(): Promise<void>; stop(reason: string): Promise<void>; mute(): void; unmute(): void; setBitrateLimit(bitrateLimit: BitsPerSecond): void; clearBitrateLimit(): void; updateTargetLag(lag: Millisecond): void; getUri(token: EncodedEdgeToken): URL; dispose(): Promise<void>; private initializeProtection; private subscribeToProtectionStrategy; private handleProtectionStrategyChange; private subscribeToMediaKeys; private handleMediaKeysChange; private subscribeToKeySession; private setMediaElementEncryptedEventHandler; }