UNPKG

livekit-client

Version:

JavaScript/TypeScript client SDK for LiveKit

58 lines 2.16 kB
import type { LoggerOptions } from '../types'; import RemoteTrack from './RemoteTrack'; import { Track } from './Track'; import type { AdaptiveStreamSettings } from './types'; export default class RemoteVideoTrack extends RemoteTrack<Track.Kind.Video> { private prevStats?; private elementInfos; private adaptiveStreamSettings?; private lastVisible?; private lastDimensions?; constructor(mediaTrack: MediaStreamTrack, sid: string, receiver: RTCRtpReceiver, adaptiveStreamSettings?: AdaptiveStreamSettings, loggerOptions?: LoggerOptions); get isAdaptiveStream(): boolean; /** * Note: When using adaptiveStream, you need to use remoteVideoTrack.attach() to add the track to a HTMLVideoElement, otherwise your video tracks might never start */ get mediaStreamTrack(): MediaStreamTrack; /** @internal */ setMuted(muted: boolean): void; attach(): HTMLMediaElement; attach(element: HTMLMediaElement): HTMLMediaElement; /** * Observe an ElementInfo for changes when adaptive streaming. * @param elementInfo * @internal */ observeElementInfo(elementInfo: ElementInfo): void; /** * Stop observing an ElementInfo for changes. * @param elementInfo * @internal */ stopObservingElementInfo(elementInfo: ElementInfo): void; detach(): HTMLMediaElement[]; detach(element: HTMLMediaElement): HTMLMediaElement; /** @internal */ getDecoderImplementation(): string | undefined; protected monitorReceiver: () => Promise<void>; private getReceiverStats; private stopObservingElement; protected handleAppVisibilityChanged(): Promise<void>; private readonly debouncedHandleResize; private updateVisibility; private updateDimensions; private getPixelDensity; } export interface ElementInfo { element: object; width(): number; height(): number; visible: boolean; pictureInPicture: boolean; visibilityChangedAt: number | undefined; handleResize?: () => void; handleVisibilityChanged?: () => void; observe(): void; stopObserving(): void; } //# sourceMappingURL=RemoteVideoTrack.d.ts.map