UNPKG

react-native-webrtc

Version:
88 lines (77 loc) 3.15 kB
import { NativeModules, Platform } from 'react-native'; const { WebRTCModule } = NativeModules; if (WebRTCModule === null) { throw new Error(`WebRTC native module not found.\n${Platform.OS === 'ios' ? 'Try executing the "pod install" command inside your projects ios folder.' : 'Try executing the "npm install" command inside your projects folder.' }`); } import { setupNativeEvents } from './EventEmitter'; import Logger from './Logger'; import mediaDevices from './MediaDevices'; import MediaStream from './MediaStream'; import MediaStreamTrack, { type MediaTrackSettings } from './MediaStreamTrack'; import MediaStreamTrackEvent from './MediaStreamTrackEvent'; import permissions from './Permissions'; import RTCAudioSession from './RTCAudioSession'; import RTCErrorEvent from './RTCErrorEvent'; import RTCIceCandidate from './RTCIceCandidate'; import RTCPIPView, { startIOSPIP, stopIOSPIP } from './RTCPIPView'; import RTCPeerConnection from './RTCPeerConnection'; import RTCRtpReceiver from './RTCRtpReceiver'; import RTCRtpSender from './RTCRtpSender'; import RTCRtpTransceiver from './RTCRtpTransceiver'; import RTCSessionDescription from './RTCSessionDescription'; import RTCView, { type RTCVideoViewProps, type RTCIOSPIPOptions } from './RTCView'; import ScreenCapturePickerView from './ScreenCapturePickerView'; Logger.enable(`${Logger.ROOT_PREFIX}:*`); // Add listeners for the native events early, since they are added asynchronously. setupNativeEvents(); export { RTCIceCandidate, RTCPeerConnection, RTCSessionDescription, RTCView, RTCPIPView, ScreenCapturePickerView, RTCRtpTransceiver, RTCRtpReceiver, RTCRtpSender, RTCErrorEvent, RTCAudioSession, MediaStream, MediaStreamTrack, type MediaTrackSettings, type RTCVideoViewProps, type RTCIOSPIPOptions, mediaDevices, permissions, registerGlobals, startIOSPIP, stopIOSPIP, }; declare const global: any; function registerGlobals(): void { // Should not happen. React Native has a global navigator object. if (typeof global.navigator !== 'object') { throw new Error('navigator is not an object'); } if (!global.navigator.mediaDevices) { global.navigator.mediaDevices = {}; } global.navigator.mediaDevices.getUserMedia = mediaDevices.getUserMedia.bind(mediaDevices); global.navigator.mediaDevices.getDisplayMedia = mediaDevices.getDisplayMedia.bind(mediaDevices); global.navigator.mediaDevices.enumerateDevices = mediaDevices.enumerateDevices.bind(mediaDevices); global.RTCIceCandidate = RTCIceCandidate; global.RTCPeerConnection = RTCPeerConnection; global.RTCRtpReceiver = RTCRtpReceiver; global.RTCRtpSender = RTCRtpReceiver; global.RTCSessionDescription = RTCSessionDescription; global.MediaStream = MediaStream; global.MediaStreamTrack = MediaStreamTrack; global.MediaStreamTrackEvent = MediaStreamTrackEvent; global.RTCRtpTransceiver = RTCRtpTransceiver; global.RTCRtpReceiver = RTCRtpReceiver; global.RTCRtpSender = RTCRtpSender; global.RTCErrorEvent = RTCErrorEvent; }