UNPKG

@phenixrts/sdk

Version:
65 lines (64 loc) 3.24 kB
import { Millisecond, BitsPerSecond } from '../../units/Units'; import ReadOnlySubject from '../../rx/ReadOnlySubject'; import Dimension from '../../video/Dimension'; import IPeerConnection from '../../rtc/IPeerConnection'; import { IRtcMonitorStatistic } from '../../rtc/RtcConnectionMonitor'; import { EncodedEdgeToken } from '../../edgeAuth/EncodedEdgeToken'; import EndPoint, { IStream } from '../discovery/EndPoint'; import Channel from '../channels/Channel'; import { IChannel } from '../channels/IChannel'; import ChannelState from '../channels/ChannelState'; import { DecodedFrameTimingInformation, RenderedFrameTimingInformation } from '../frameTiming/FrameTimingInformation'; import IsoBmffPlayer, { IsoBmffPlayerState } from './IsoBmffPlayer'; import IsoBmffPlayerEncodedStreamSinks from './IsoBmffPlayerEncodedStreamSinks'; export default class IsoBmffChannel implements IChannel { private readonly _disposables; private readonly _channel; private readonly _isoBmffPlayer; private readonly _isoBmffPlayerEncodedStreamSinks; private _currentMediaStream; constructor(channel: Channel, isoBmffPlayer: IsoBmffPlayer, isoBmffPlayerEncodedStreamSinks: IsoBmffPlayerEncodedStreamSinks); get videoElement(): HTMLVideoElement | null; set videoElement(_value: HTMLVideoElement); get token(): EncodedEdgeToken; set token(value: 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 initialize; private handleStreamUpdated; private handleMediaStreamUpdated; }