opentok-react-native
Version:
Vonage Video client SDK for React Native
82 lines (71 loc) • 2.51 kB
text/typescript
import type { HostComponent, ViewProps } from 'react-native';
import type {
BubblingEventHandler,
Int32,
Float,
} from 'react-native/Libraries/Types/CodegenTypes';
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
export type StreamEvent = {
streamId: string;
};
export type ErrorEvent = {
code: string;
message: string;
};
export type EmptyEvent = {};
export type PublisherVideoNetworkStatsEvent = {
jsonStats: string; // JSON string containing all video stats
};
export type AudioLevelEvent = {
audioLevel: Float;
};
export type AudioNetworkStatsEvent = {
jsonStats: string; // JSON string containing all audio stats
};
export type PublisherRTCStatsReportEvent = {
jsonStats: string; // JSON string containing all event data
};
export interface NativeProps extends ViewProps {
sessionId: string;
publisherId: string;
publishAudio?: boolean;
publishVideo?: boolean;
publishCaptions?: boolean;
audioBitrate?: Int32;
publisherAudioFallback?: boolean;
subscriberAudioFallback?: boolean;
audioTrack?: boolean;
cameraPosition?: string;
cameraTorch?: boolean;
cameraZoomFactor?: Float;
enableDtx?: boolean;
frameRate?: Int32;
name?: string;
resolution?: string;
scalableScreenshare?: boolean;
allowAudioCaptureWhileMuted?: boolean;
audioFallbackEnabled?: boolean;
videoTrack?: boolean;
videoSource?: string;
videoContentHint?: string;
maxVideoBitrate?: Int32;
videoBitratePreset?: string;
scaleBehavior?: string;
publishSenderStats?: boolean;
preferredVideoCodecs?: string;
onError?: BubblingEventHandler<ErrorEvent> | null;
onStreamCreated?: BubblingEventHandler<StreamEvent> | null;
onStreamDestroyed?: BubblingEventHandler<StreamEvent> | null;
onAudioLevel?: BubblingEventHandler<AudioLevelEvent> | null;
onAudioNetworkStats?: BubblingEventHandler<AudioNetworkStatsEvent> | null;
onMuteForced?: BubblingEventHandler<EmptyEvent> | null;
onRtcStatsReport?: BubblingEventHandler<PublisherRTCStatsReportEvent> | null;
onVideoDisabled?: BubblingEventHandler<EmptyEvent> | null;
onVideoDisableWarning?: BubblingEventHandler<EmptyEvent> | null;
onVideoDisableWarningLifted?: BubblingEventHandler<EmptyEvent> | null;
onVideoEnabled?: BubblingEventHandler<EmptyEvent> | null;
onVideoNetworkStats?: BubblingEventHandler<PublisherVideoNetworkStatsEvent> | null;
}
export default codegenNativeComponent<NativeProps>(
'OTRNPublisher'
) as HostComponent<NativeProps>;