@phenixrts/sdk
Version:
JavaScript SDK
66 lines (65 loc) • 3.28 kB
TypeScript
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;
}