UNPKG

voicebot-react-native-expo

Version:

This is a voicebot-react-native package of Kipps AI voice bot for React Native Expo

91 lines (89 loc) 2.78 kB
import { registerGlobals as webrtcRegisterGlobals } from '@livekit/react-native-webrtc'; import { setupURLPolyfill } from 'react-native-url-polyfill'; import './polyfills/EncoderDecoderTogether.min.js'; import AudioSession, { AndroidAudioTypePresets, getDefaultAppleAudioConfigurationForMode } from './audio/AudioSession'; import { PixelRatio, Platform } from 'react-native'; /** * Registers the required globals needed for LiveKit to work. * * Must be called before using LiveKit. */ export function registerGlobals() { webrtcRegisterGlobals(); iosCategoryEnforce(); livekitRegisterGlobals(); setupURLPolyfill(); fixWebrtcAdapter(); shimPromiseAllSettled(); shimArrayAt(); shimAsyncIterator(); shimIterator(); } /** * Enforces changing to playAndRecord category prior to obtaining microphone. */ function iosCategoryEnforce() { if (Platform.OS === 'ios') { // @ts-ignore let getUserMediaFunc = global.navigator.mediaDevices.getUserMedia; // @ts-ignore global.navigator.mediaDevices.getUserMedia = async constraints => { if (constraints.audio) { await AudioSession.setAppleAudioConfiguration({ audioCategory: 'playAndRecord' }); } return await getUserMediaFunc(constraints); }; } } function livekitRegisterGlobals() { let lkGlobal = { platform: Platform.OS, devicePixelRatio: PixelRatio.get() }; // @ts-ignore global.LiveKitReactNativeGlobal = lkGlobal; } function fixWebrtcAdapter() { var _window; // @ts-ignore if (((_window = window) === null || _window === void 0 ? void 0 : _window.navigator) !== undefined) { // @ts-ignore const { navigator } = window; if (navigator.userAgent === undefined) { navigator.userAgent = navigator.product ?? 'Unknown'; } } } function shimPromiseAllSettled() { var allSettled = require('promise.allsettled'); allSettled.shim(); } function shimArrayAt() { // Some versions of RN don't have Array.prototype.at, which is used by sdp-transform if (!Array.prototype.at) { var at = require('array.prototype.at'); at.shim(); } } function shimAsyncIterator() { var shim = require('well-known-symbols/Symbol.asyncIterator/shim'); shim(); } function shimIterator() { var shim = require('well-known-symbols/Symbol.iterator/shim'); shim(); } export * from './hooks'; export * from './components/LiveKitRoom'; export * from './components/VideoTrack'; export * from './components/VideoView'; // deprecated export * from './useParticipant'; // deprecated export * from './useRoom'; // deprecated export * from './logger'; export * from './audio/AudioManager'; export { AudioSession, AndroidAudioTypePresets, getDefaultAppleAudioConfigurationForMode }; //# sourceMappingURL=index.js.map