[Update]: This version is built with the React Native new architecture. Applications currently using older versions of this SDK will need to migrate to React Native's new architecture before upgrading. You need to use a version of React Native that supports the new architecture (0.81+) and you need to register the OpenTok React Native packages in your application (see the Installation instructions).
[Update]: This version adds full support for session migration (which was previously in beta). To enable session migration, set the sessionMigration property of the options prop of the OTSession component to true. For more information see this documentation.
[Update]: This version adds a new OTSession.forceDisconnect() method for forcing clients to disconnect. For more information, see our documentation for Moderation.
[Update]: This version adds an allowAudioCaptureWhileMuted property of the OTPublisher properties prop. Set this to true to have the publisher receive audio level updates when not publishing audio.
[Update]: This version adds API enhancements for controling the maximum bitrate of a published stream. These are added as new videoBitratePreset and maxVideoBitrate properties of the OTPublisher properties prop. For more information, see this documentation.
[Update]: This version adds a scaleBehavior property to the properties prop for both OTPublisher and OTSubscriber. Supported values are fill (default) and fit. This property is currently only supported on iOS.
[Update]: This version introduces official support for EXPO through a configuration plugin. EXPO developers can now easily integrate the SDK into their projects using the plugin, which automatically handles native module configuration. To use the plugin, add it to your app.json or app.config.js file.
[Update]: This version updates the Vonage Video Android SDK and iOS SDK to version 2.30.0. For more information, see the Android SDK release notes and the iOS SDK release notes.
[Update]: This version adds support for enabling the camera torch (flashlight) and setting the zoom factor for the Publisher camera. See the cameraTorch and cameraZoomFactor properties of the properties prop of the OTPublisher component.
[Update]: This version includes an option to skip local network checks when establishing media connectivity on iOS. This prevents the app from prompting the user for permission when it attempts to subscribe to clients on the same local network in a relayed session.
Set the filterOutLanCandidates property of the object set as the iceConfig property options prop of the OTSession component to true:
<OTSession
options={{
iceConfig:{
filterOutLanCandidates: true,
},
// other options
}}
/>
Note that -- unlike the other iceConfig settings -- this setting does not require the configurable TURN server add-on feature.
For more information see this documentation.
[Update]: This version adds support for session migration. Set the sessionMigration property of the options prop of the OTSession component to true. For more information see this documentation. This is a beta feature.
[Update]: This version updates the Vonage Video Android SDK and iOS SDK to version 2.29.1. For more information, see the Android SDK release notes and the iOS SDK release notes.
[Update]: For Android, this version requires the ACCESS_NETWORK_STATE permission, and on Android API level 35+ it also requires the REQUEST_IGNORE_BATTERY_OPTIMIZATIONS permission. You do not need to add these to your app manifest. The OpenTok Android SDK adds them automatically. However, certain permissions require you to prompt the user. See the full list of required permissions in the Vonage Video API Android SDK documentation.
[Update]: This version updates the Vonage Video Android SDK to version 2.28.3 and the Vonage Video iOS SDK to version 2.28.2. See the Android SDK release notes and the iOS SDK release notes.
This version updates sourceCompatibility and targetCompatibility to Java 17 in the Android build.gradle file. When using this version, you will need to specify sourceCompatibility and targetCompatibility in the Android build.gradle file:
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
[Update]: This version updates the Vonage Video Android and iOS SDK to version 2.28.1. See the Android SDK release notes and the iOS SDK release notes.
[Fix]: Updates react, react-native modules (and axios dependency), and replaces uuid with react-native-uuid. The fixes issue #769. And it prevents an issue that would result from using an upgraded version of uuid.
[Fix]: Fixes an error that resulted if you set an OTPublisher event handler for streamCreated without setting one for streamDestroyed.
[Update]: The new OTPublisher.setAudioTransformers() method lets you set (and clear) audio transformers. One transformer, the noise suppression filter, is supported. To use this, call the setAudioTransformers() method of the OTPublisher ref, and pass in an array with one object that has a name property set to 'NoiseSuppression' and a properties property set to an empty string:
publisherRef.setAudioTransformers([{
name: 'NoiseSuppression',
properties: '',
}]);
Important: To use this method, you must add the Vonage Media Transformer library to your project, separately from the OpenTok React Native SDK. See Vonage Media Library integration.
[Update]: This version adds support for enabling single peer connection for the client, by setting the enableSinglePeerConnection property of the options prop of the OTSession component to true. For more information see this documentation.
[Update]: This version updates the Vonage Video Android SDK and iOS SDK to version 2.28.0.
[Update]: The Vonage Video iOS and Android SDKs loaded by this version are reduced in size by removing Vonage Media Library code.
Important: In order to use the OTPublisher.setVideoTransformers() method (which uses the Vonage Media Library), you must add the Vonage Media Library separately from the Vonage Video React Native SDK. For details, see Vonage Media Library integration.
[Update]: For Android, this version of the library requires a minimum Android API level of 24.
[Update]: This version adds support for reading the Certificate Authority certificates in the trust store of the host so that it can use them as valid root certificates when connecting to OpenTok services.
[Update]: This version adds support for Apple's requirement of the signature for the SDK.
[Update]: This version updates a vulnerable Node module (braces).
[Fix]: This version fixes the OTSubscriber captionReceived event handler. It also fixes the OTPublisher publishCaptions option in iOS.
[Fix]: Calling OTSubscriber.getRtcStatsReport() method was resulting in an error. This version fixes the issue.
[Fix]: Setting the enableStereoOutput option of the OTSession component was causing apps to crash in Android. The custom audio driver (used in Android when the enableStereoOutput option is set) is broken. This version disables the enableStereoOutput option in Android.
[Fix] The subscribeToSelf prop of the OTSubscriber component was not working. This version fixes the issue (issue #612).
[Update]: This version updates the Vonage Video iOS SDK version to 2.27.2 and the Vonage Video Android SDK version to 2.27.1. See their release notes for details:
[Fix] Toggling between a screen and camera video source for publisher caused apps to crash in iOS. This version fixes the issue (issue #710).
videoSource setting set to "screen") failed if the app did not have camera access permission. This version fixes the issue, so that screen-sharing can proceed without camera access permission.Note: In Android 6.0 (API Level 23) and higher, the OpenTok React Native SDK automatically adds the camera access permission. However, an app or user can disable it independently of the SDK.
PermissionsAndroid.PERMISSIONS.CAMERA or PermissionsAndroid.PERMISSIONS.RECORD_AUDIO were not true. This version fixes that, by having audio-only or video-only publishers skip the PermissionsAndroid.PERMISSIONS.CAMERA or PermissionsAndroid.PERMISSIONS.RECORD_AUDIO check if the videoTrack or audioTrack property of the properties prop of the OTPublisher component is set to false. You can set these props to false based on these permissions:import { PermissionsAndroid } from 'react-native';
// ...
<OTPublisher
properties={{
videoTrack={{(Platform.OS === 'ios' || PermissionsAndroid.CAMERA)}}
}}
/>
Note: In Android 6.0 (API Level 23) and higher, the OpenTok React Native SDK automatically adds these permissions. However, an app or user can disable them independently of the SDK.
[Fix]: On Android, setting the videoTrack property of the properties prop of the OTPublisher component false resulted in the app to crash. This version fixes the issue (issue #652).
[Fix]: Fixes some TypeScript definitions (issue #725).
[Update]: Update OpenTok Android SDK and OpenTok iOS SDK to version 2.27.0.
This version adds support for the VP9 codec in relayed sessions. For more information, see the video codecs documentation.
This version adds support for adaptive media routing. For more information, see the adaptive media routing documentation.
For more details, see the release notes for the OpenTok iOS and Android SDKs.
[Update]: This version adds support for end-to-end encryption. The OTSession component includes a new encryptionSecret prop, which you can use to set and change the encryption secret used by the local client.
[Update]: This version adds a new OTPublisher audioFallback option, which supports both subscriber and publisher audio fallback. The audioFallback.subscriber property replaces the OTPublisher audioFallbackEnabled option, which is deprecated.
The OTPublisher component has new callback functions for publisher audio fallback-related events: videoDisabled(), videoEnabled(), videoDisableWarning(), and videoDisableWarningLifted(). See the audio fallback developer guide.
[Update]: The OTPublisher.setVideoTransformer() method now supports the background image replacement transformer in Android (as well as iOS). And the custom radius option for the background blur filter is now supported in Android (as well as iOS).
[Update]: The axios package is updated. This updates a vulnerable version of in the follow-redirects dependency.
[Fix]: This version fixes some issues in the TypeScript definitions.
[Fix]: This version fixes the following events, which were not being dispatched:
[Fix]: This version fixes the OTSession.forceMuteAll() method in iOS.
[Update]: The new OTPublisher.setVideoTransformers() method lets you set (and clear)
video transformers, such as a background blur for a publisher (issues #631 and #682).
For more info, see the docs: OTPublisher.
[Update]: Live Captions API enhancements (issue #643)
The new OTPublisher.publishCaptions option lets you enable and disable captions for a published stream (if captions are enabled for the session). For more info, see the docs:OTPublisher.
The new OTSubscriber.subscribeToCaptions option lets you turn captions on and off for a subscriber (if captions are enabled for the session and the publisher are publishing captions). For more info, see the docs: OTSubscriber.
The new OTSubscriber captionReceived event is dispatched when a subscriber receives a caption. For more info, see the docs: OTSubscriber.
For more information, see the Live Captions developer guide.
[Fix]: Fixes an issue in which applications could not connect to a session when
the proxyUrl option for OTSession was set. - issue #645
[Fix]: Fixes an issue a stream is not destroyed immediately after unmounting an OTSession component or when the OTSession.disconnect() method is called. - issues #685 and #686
[Update]: Update OpenTok Android SDK and OpenTok iOS SDK to version 2.26.1.
See the release notes for the OpenTok ioS SDK and the Android SDK.
For Android, this version of the library requires a minimum Android API level of 23.
There are changes to iOS 14 networking affecting relayed sessions — see the list of known issues in the OpenTok iOS SDK release notes.
[Update]: Add API to implement functionality missing from the OpenTok Android and iOS SDKs:
OTSession.getCapabilities() methodreportIssue() methods and rtcStatsReport events added to OTPublisher and OTSubscriberscalableScreenshare option (in the OTPublisher properties)audioNetworkStats and videoNetworkStats eventsOTPublisher.getRtcStatsReport() method and OTPublisher rtcStatsReport eventresolution (for FHD video support)audioVolume property.muteForce event and OTSession muteForced event.For more info, see the docs:
[Update]: Update OpenTok Android SDK and OpenTok iOS SDK to version 2.25.1.
Note that with this version, we are pinning the major and minor release versions (2.25) to match the corresponding versions in the OpenTok Android and iOS SDKs.
For iOS, note that this version supports iOS 13+, removes support for FAT binaries and drops 32-bit support. The OpenTok iOS SDK is now available as the OTXCFramework Pod file. (The OpenTok pod file was for FAT binaries.)
See the release notes for the OpenTok ioS SDK and the Android SDK.
[Fix]: Fixes an issue in which applications could not connect to a session when
the proxyUrl option for OTSession was set. - issue #645
opentok-react-native version to3.4.0 due to UUID#375nativeEvents.listeners() crash PR493stereo output on iOS and Android using CustomAudioDevice2.18.12.18.12.17.0 and Android SDK to 2.17.12.16.5 and Android SDK to 2.16.52.16.3Attempted to register RCTBridgeModule class OTSessionManager issue after opening/reloading app (merged from PR336).