UNPKG

@signalwire/js

Version:
118 lines 4.41 kB
import { EventEmitter } from '@signalwire/core'; import { BaseConnection } from './BaseConnection'; export default class RTCPeer<EventTypes extends EventEmitter.ValidEventTypes> { call: BaseConnection<EventTypes>; type: RTCSdpType; uuid: string; instance: RTCPeerConnection; private _iceTimeout; private _negotiating; private _processingRemoteSDP; private _restartingIce; private _watchMediaPacketsTimer; private _connectionStateTimer; private _resumeTimer?; private _mediaWatcher; /** * Both of these properties are used to have granular * control over when to `resolve` and when `reject` the * `start()` method. */ private _resolveStartMethod; private _rejectStartMethod; /** * The promise that resolves or rejects when the negotiation succeed or fail. * The consumer needs to declare the promise and assign it to this in order to * wait for the negotiation to complete. */ _pendingNegotiationPromise?: { resolve: (value?: unknown) => void; reject: (error: unknown) => void; }; private _localStream?; private _remoteStream?; private rtcConfigPolyfill; private get logger(); constructor(call: BaseConnection<EventTypes>, type: RTCSdpType); get options(): import("./BaseConnection").BaseConnectionOptions; get watchMediaPacketsTimeout(): number; get isNegotiating(): boolean; get localStream(): MediaStream | undefined; set localStream(stream: MediaStream | undefined); get remoteStream(): MediaStream | undefined; get isOffer(): boolean; get isAnswer(): boolean; get isSimulcast(): boolean; get isSfu(): boolean; get localVideoTrack(): MediaStreamTrack | null; get localAudioTrack(): MediaStreamTrack | null; get remoteVideoTrack(): MediaStreamTrack | null; get remoteAudioTrack(): MediaStreamTrack | null; get hasAudioSender(): boolean; get hasVideoSender(): boolean; get hasAudioReceiver(): boolean; get hasVideoReceiver(): boolean; get config(): RTCConfiguration; get localSdp(): string | undefined; get remoteSdp(): string | undefined; get hasIceServers(): boolean; stopTrackSender(kind: string): void; stopTrackReceiver(kind: string): void; restoreTrackSender(kind: string): Promise<void>; getDeviceId(kind: string): string | null; getTrackSettings(kind: string): MediaTrackSettings | null; getDeviceLabel(kind: string): string | null; restartIceWithRelayOnly(): void; restartIce(): void; triggerResume(): void; private resetNeedResume; stopWatchMediaPackets(): void; startWatchMediaPackets(): void; applyMediaConstraints(kind: string, constraints: MediaTrackConstraints): Promise<void>; private _getSenderByKind; private _getReceiverByKind; startNegotiation(force?: boolean): Promise<void>; onRemoteBye({ code, message }: { code: string; message: string; }): void; onRemoteSdp(sdp: string): Promise<void>; private _setupRTCPeerConnection; start(): Promise<unknown>; detachAndStop(): void; stop(): void; private _supportsAddTransceiver; private _checkMediaToNegotiate; private _sdpReady; private _sdpIsValid; private _forceNegotiation; private _onIceTimeout; private _onIce; private _setLocalDescription; private _setRemoteDescription; private _retrieveLocalStream; private _attachListeners; private clearTimers; private clearConnectionStateTimer; private clearWatchMediaPacketsTimer; private clearResumeTimer; private emitMediaConnected; private _onEndedTrackHandler; _attachAudioTrackListener(): void; _attachVideoTrackListener(): void; _detachAudioTrackListener(): void; _detachVideoTrackListener(): void; /** * React Native does not support getConfiguration * so we polyfill it using a local `rtcConfigPolyfill` object. * @see https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/setConfiguration#parameters */ private setConfiguration; /** * React Native does not support getConfiguration * so we polyfill it using a local config object. * @see https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/getConfiguration */ private getConfiguration; } //# sourceMappingURL=RTCPeer.d.ts.map