Welcome to version 2.28.0 of the OpenTok.js library.
If you have any questions, Vonage Support
is here to help.
Announcements
New features
Requirements
Known issues
Fixed issues
More information
How to report bugs
For details on the OpenTok.js API, see the
OpenTok.js library reference.
Announcements
Safari versions 15.4 and 15.5 (which ship with iOS 15.4 and 15.5 and macOS 12.3 and 12.4)
fix issues that affect apps that use OpenTok.js (in Safari). See
this note.
OpenTok.js now includes beta support for Google Chrome for iOS and Firefox for iOS.
OpenTok.js version 2.16 was the last version to support the OpenTok
Plugin for Internet Explorer. OpenTok.js version 2.16 was
deprecated in May 2020 for the Standard environment and June 2020 for
the Enterprise environment. Support for the OpenTok plugin for Internet Explorer
was removed in OpenTok 2.17.
OpenTok.js fully supports Chromium-based versions of Microsoft
Edge (versions 79+) for Windows and macOS.
Safari now supports the VP8 video codec, in addition to H.264. VP8 support
is in Safari 12.1, which ships on macOS 10.14.4 and is also available
for macOS 10.13.6 and 10.12.6. And it is available in the latest iOS 12.2
release. For information on video interoperability and other issues, see the
Safari browser support page.
For more information on video codecs, see this
developer guide.
As of Chrome 72 and Opera 59, an extension is no longer needed for screen sharing.
Chrome prompts the end user for access to a screen, window, or
tab, as it would for access to the camera. In the current versions
of Chrome, Firefox, and Opera, you no longer need to deploy a screen-sharing
extension.
On macOS 10.15+ (Catalina), to publish a screen-sharing stream
the user must grant the browser access to the screen in macOS System Preferences >
Security & Privacy > Privacy > Screen Recording. Otherwise,
the Publisher will dispatch an accessDenied
event.
New Features in OpenTok.js 2.28
New Features in OpenTok.js 2.28.3 — September 2024
We have extended the Publisher accessDenied
event to be dispatched when the user revokes access to the camera or microphone after previously granting them. This is a beta feature.
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.28.2 — August 2024
Added support for audio input changed events. This version adds the audioInputDeviceChanged
event, which the Publisher object dispatches when the audio input device changes. See this documentation. This is a beta feature.
Added support for central processing unit (CPU) usage events. This version adds the cpuPerformanceChanged
event, which the Session object dispatches when there are changes in CPU usage. This is a beta feature.
New Features in OpenTok.js 2.28.1 — July 2024
Added support to disable audio input management. To disable audio input management, add the disableAudioInputDeviceManagement
property to the options passed into the OT.initPublisher()
method and set it to true
. This is a beta feature.
Added support for publishVideo
function callbacks. This is a beta feature.
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.28.0 — June 2024
Added support for media stream APIs for publishers and subscribers.
See the Publisher
mediaStreamAvailable and Subscriber
mediaStreamAvailable events.
This was previously a beta feature.
This release adds support for advanced noise suppression. See Applying the advanced noise suppression filter. This was previously a beta feature.
Added support for subscriber resolution optimization. You can now pass the "auto"
value into the preferredResolution
property of the options
object you pass into the Session.subscribe()
method. With the preferred resolution set to "auto"
, OpenTok.js automatically sets the preferred resolution for a subscriber, based on its dimensions in the browser. This feature only applies when subscribing to a stream that uses the scalable video feature.
This was previously a beta feature.
Features added in previous versions
Show details.
New Features in OpenTok.js 2.27.7 — June 2024
Added support for media stream APIs for publishers and subscribers. This is a beta feature.
See the Publisher
mediaStreamAvailable and Subscriber
mediaStreamAvailable events.
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.27.6 — June 2024
This release adds support for advanced noise suppression. See Applying the advanced noise suppression filter.
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.27.5 — May 2024
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.27.4 — April 2024
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.27.3 — April 2024
Added support for subscriber resolution optimization. This is
a beta feature. You can now pass the "auto"
value into the preferredResolution
property of the options
object you pass into the Session.subscribe()
method. With the preferred resolution set to "auto"
, OpenTok.js automatically sets the preferred resolution for a subscriber, based on its dimensions in the browser. This feature only applies when subscribing to a stream that uses the scalable video feature.
Added TypeScript definitions for Subscriber audioBlocked
and audioUnblocked
events.
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.27.2 — February 2024
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.27.1 — January 2024
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.27.0 — December 2023
Added support for publisher audio fallback.
This was previously a beta feature. For more information, see the Publisher audio fallback documentation.
Added support for the VP9 codec in relayed sessions.
For more information, see the Video Codecs documentation.
Added support for end-to-end-encryption interoperability with the other Vonage Video client SDKs.
For more information, see the End-to-end encryption documentation.
Added support in the Vonage Media Processor library for subscriber media processor APIs for audio and video. You can apply custom subscriber video and audio transformations to video and audio streams using the Subscriber.setVideoMediaProcessorConnector()
and Subscriber.setAudioMediaProcessorConnector()
methods. For more information, see the Vonage Media Processor documentation.
New Features in OpenTok.js 2.26.4 — November 2023
Added support for publisher audio fallback.
This is a beta feature. See Publisher audio fallback.
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.26.3 — October 2023
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.26.2 — October 2023
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.26.1 — August 2023
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.26.0 — August 2023
Added support for publisher initials.
This feature allows users to specify what initials
to display over the publisher's widget when the video is disabled. See the documentation
for the initials
option of the properties
of the
OT.initPublisher() method. This was previously a beta feature.
Live Captions. This version adds support for
Live Captions.
This was previously a beta feature.
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.25.5 — July 2023
Added support for publisher initials.
This is a beta feature. This feature allows users to specify what initials
to display over the publisher's widget when the video is disabled. See the documentation
for the initials
option of the properties
of the
OT.initPublisher() method.
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.25.4 — June 2023
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.25.3 — May 2023
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.25.2 — May 2023
Improved performance of Background Blur and Background Replacement APIs on low-end devices.
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.25.1 — April 2023
This version adds support for Live Captions.
This is beta feature.
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.25.0 — April 2023
Added method to disable scalable video. You can disable scalable video (in a publisher in a routed
session). For more information, see the scalableVideo
option of the
OT.initPublisher()
method. This was previously a beta feature.
Background image filter for published streams. For more information, see the videoFilter
option of the
OT.initPublisher()
method. This was previously a beta feature.
Added support for end-to-end encryption. You can enable end-to end-encryption using the Session.setEncryptionSecret()
method. See the documentation for the
Session.setEncryptionSecret()
method.
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.24.7 — March 2023
Added method to disable scalable video. This is
a beta feature. You can disable scalable video (in a publisher in a routed
session). For more information, see the scalableVideo
option of the
OT.initPublisher()
method.
Added supported for adaptive media routing. For more information, see the
Adaptive Media Routing
documentation.
New Features in OpenTok.js 2.24.6 — January 2023
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.24.5 — January 2023
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.24.4 — January 2023
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.24.3 — December 2022
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.24.2 — December 2022
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.24.1 — November 2022
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.24.0 — October 2022
Added support to update custom TURN credentials.
See the documentation for the
Session.setIceConfig()
method. This is available for projects that use the
configurable
TURN server add-on. This was previously a beta feature.
Added support for insertable streams for audio and video.
You can apply custom audio and video transformations to a published
stream using the Publisher.setAudioMediaProcessorConnector()
and Publisher.setVideoMediaProcessorConnector()
methods. You can also integrate with the
Vonage media processor
library to apply additional transformations. For more information, see
Using the Vonage Media Processor library.
This was previously a beta feature.
New Features in OpenTok.js 2.23.9 — October 2022
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.23.8 — October 2022
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.23.7 — October 2022
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.23.6 — September 2022
Added support to update custom TURN credentials.
See the documentation for the
Session.setIceConfig()
method. This is available for projects that use the
configurable
TURN server add-on. This is a beta feature.
New Features in OpenTok.js 2.23.5 — September 2022
Added support for third-party images in a background replacement filter.
This is a beta feature. You can now use an image from a remote source
(from a domain other than that of the web page) in a background replacement filter
for a published stream. See the documentation for the videoFilter
option of the
OT.initPublisher() method.
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.23.4 — August 2022
Added support for Insertable Streams for audio. This is
a beta feature. You can apply custom audio transformations to a published
stream using the Publisher.setAudioMediaProcessorConnector()
method. You can also integrate with the
Vonage media processor library
to apply additional transformations. For more information, see
Using the Vonage Media Processor library.
Added support for Video Filters when using custom video streams. A custom
stream is a stream published with a
MediaStreamTrack
object as the video source. This is a beta feature. You can apply custom video
filters to a publisher using the Publisher.applyVideoFilter()
method.
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.23.3 — August 2022
Added support for Insertable Streams for video. This is
a beta feature. You can apply custom video transformations to a published
stream using the Publisher.setVideoMediaProcessorConnector()
method. You can also integrate with the
Vonage media processor library
to apply additional transformations. For more information, see
Using the Vonage Media Processor library.
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.23.2 — July 2022
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.23.1 — July 2022
Added support for the background replacement filter. This is
a beta feature. You can apply the background replacement filter to a published stream.
See the documentation for the videoFilter
option of the
OT.initPublisher() method.
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.23.0 — June 2022
Added a method to check if the browser supports video filters.
This was previously a beta feature. See the documentation for the
OT.hasMediaProcessorSupport()
method. This method reports whether the browser supports video filters,
which require media processor support. Also, see the docs for the
Publisher.applyVideoFilter(),
Publisher.getVideoFilter(), and
Publisher.clearVideoFilter()
methods.
Added support for filtering video for publishers using Chromium-based browsers.
This was previously a beta feature. Currently, only a background blur filter can be applied.
See the videoFilter
property of the option
parameter you pass into OT.initPublisher()
method. Also, see the docs for the
Publisher.applyVideoFilter(),
Publisher.getVideoFilter(), and
Publisher.clearVideoFilter()
methods.
Added support for Full High Definition (1080p). You can specify '1920x1080'
as the resolution
property of the options you pass into the
OT.initPublisher() method.
This was previously a beta feature.
New feature that implements scalable video
support for screen sharing. This was previously a beta feature.
See the scalableScreenshare
option for the OT.initPublisher()
method.
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.22
New Features in OpenTok.js 2.22.5 — June 2022
Added a method to check if the browser supports video filters.
This is a beta feature. See the documentation for the
OT.hasMediaProcessorSupport()
method. This method reports whether the browser supports video filters,
which require media processor support. (Currently, only a background blur
filter is supported.) Also, see the docs for the
Publisher.applyVideoFilter(),
Publisher.getVideoFilter(), and
Publisher.clearVideoFilter()
methods.
New Features in OpenTok.js 2.22.4 — June 2022
Added support for filtering video for publishers using Chromium-based browsers.
This is a beta feature. Currently, only a background blur filter can be applied.
See the videoFilter
property of the option
parameter you pass into OT.initPublisher()
method. Also, see the docs for the
Publisher.applyVideoFilter(),
Publisher.getVideoFilter(), and
Publisher.clearVideoFilter()
methods.
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.22.3 — May 2022
Added support for Full High Definition (1080p). You can specify '1920x1080'
as the resolution
property of the options you pass into the
OT.initPublisher() method.
This is a private beta feature. Please contact Vonage if you would like to enable this
feature for your Video API project.
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.22.2 — April 2022
Added support for filtering video for the publisher. This is a beta feature. Currently, only a
background blur filter can be applied. See the videoFilter
property of the option
parameter you pass into OT.initPublisher()
method. Also, see the docs for the
Publisher.applyVideoFilter(),
Publisher.getVideoFilter(), and
Publisher.clearVideoFilter()
methods.
New feature that implements scalable video
support for screen sharing. This is a beta feature.
See the scalableScreenshare
option for the OT.initPublisher()
method.
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.22.1 — March 2022
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.22.0 — February 2022
Added support for Opus DTX. This was previously a beta feature. Using
Opus DTX can reduce bandwidth usage
in streams that have long periods of silence. See the enableDtx
property of the option
parameter you pass into OT.initPublisher()
method.
Ability to select audio output. This was previously a beta feature. See the docs
for the OT.getAudioOutputDevices(),
OT.getActiveAudioOutputDevice(), and
OT.setAudioOutputDevice()
methods.
New Features in OpenTok.js 2.21
New Features in OpenTok.js 2.21.8 — February 2022
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.21.7 — February 2022
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.21.6 — January 2022
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.21.5 — January 2022
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.21.3 and OpenTok.js 2.21.4 — December 2021
We discovered issues in versions 2.21.3 and versions 2.21.4 after they were released,
so we reverted the current version back to 2.21.2 on December 21, 2021.
New Features in OpenTok.js 2.21.2 — November 2021
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.21.1 — October 2021
Added support for Opus DTX. This is a beta feature. Using
Opus DTX can reduce bandwidth usage
in streams that have long periods of silence. See the enableDtx
property of the option
parameter you pass into OT.initPublisher()
method.
Ability to select audio output. This is a beta feature. See the docs
for the OT.getAudioOutputDevices(),
OT.getActiveAudioOutputDevice(), and
OT.setAudioOutputDevice()
methods.
Added scalable video support to desktop Opera and Chromium-based versions of Edge. This is a beta feature.
New Features in OpenTok.js 2.21.0 — October 2021
Ability for moderators to mute participants. This was previously a beta feature. See
the docs for the Session.forceMuteAll()
and Session.forceMuteStream()
methods.
Added support for Chrome and Firefox on iOS 14.3+.
New Features in OpenTok.js 2.20
New Features in OpenTok.js 2.20.5 — November 2021
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.20.4 — November 2021
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.20.3 — August 2021
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.20.2 — August 2021
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.20.1 — June 2021
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.20.0 — May 2021
Ability to dynamically change how published video streams are optimized.
This can improve video perfomance for some screen-sharing streams and in other conditions.
See this developer guide
topic and the documentation of the videoContentHint
property the options
you pass into the OT.initPublisher()
method and the
Publisher.setVideoContentHint() method.
Ability for moderators to mute participants. This is a beta feature. See the docs
for the Session.forceMuteAll()
and Session.forceMuteStream()
methods.
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.19
New Features in OpenTok.js 2.19.5 — November 2021
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.19.4 — July 2021
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.19.3 — April 2021
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.19.2 — March 2021
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.19.1 — February 2021
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.19.0 — January 2021
New feature to dynamically change the camera video source for a publisher.
See the
Publisher.setVideoSource() method and the
Publisher.getVideoSource() method.
New settings to independently control audio processing options for published
streams. See the autoGainControl
, echoCancellation
,
and noiseSuppression
options for the
OT.initPublisher()
method.
We have improved the performance for audioLevel events in Chrome, Edge, and Opera.
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.18
New Features in OpenTok.js 2.18.5 — July 2021
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.18.4 — December 2020
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.18.3 — December 2020
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.18.2 — November 2020
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.18.1 — September 2020
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.18.0 — August 2020
RTCStatsReport audio and video statistics for a publisher or subscriber. See the
Publisher.getRtcStatsReport() and
Subscriber.getRtcStatsReport() methods.
Added support for the IP Proxy feature.
See the
OT.setProxyUrl() method.
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.17
New Features in OpenTok.js 2.17.7 — July 2020
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.17.6 — July 2020
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.17.5 — June 2020
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.17.4 — June 2020
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.17.3 — May 2020
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.17.2 — May 2020
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.17.1 — February 2020
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.17.0 — February 2020
Added support for Chromium-based versions of Microsoft Edge (versions 79+)
for Windows and macOS.
Added screen-sharing support for Safari 13 on macOS.
Removed support for the OpenTok Plugin for Internet Explorer.
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.16
New Features in OpenTok.js 2.16.6 — January 2020
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.16.5 — January 2020
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.16.4 — January 2020
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.16.3 — September 2019
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.16.2 — July 2019
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.16.1 — May 2019
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.16.0 — April 2019
API additions for working with the Subscriber audio autoplay.
Firefox 66 and Chrome 71 introduced new autoplay policies that are
similar to the one in Safari. (See these
Firefox and
Chrome announcements.) The following
API additions let you remove the default audio playback icon (displayed)
by the Subscriber and use display own UI element that the end user will
click to play back audio (in Chrome and Safari):
Also see the list of fixed issues.
New Features in OpenTok.js 2.15
New Features in OpenTok.js 2.15.11 — April 2019
This release fixes an issue with subscriber audio playback in Firefox 66+ —
see the list of fixed issues.
New Features in OpenTok.js 2.15.10 — February 2019
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.15.9 — February 2019
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.15.8 — February 2019
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.15.7 — February 2019
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.15.6 — February 2019
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.15.5 — December 2018
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.15.4 — November 2018
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.15.3 — November 2018
This release fixes an issue with logging to the console — see the list of
fixed issues.
New Features in OpenTok.js 2.15.2 — October 2018
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.15.1 — October 2018
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.15.0 — October 2018
The ability to dynamically change the audio source for a publisher. See the
Publisher.setAudioSource() and
Publisher.getAudioSource() methods.
The ability to get a list of supported video codecs in the client's browser.
See the
OT.getSupportedCodecs() method.
Event when a subscriber's video resumes when the codec changes to one supported
in the subscriber's browser. See the Subscriber
videoEnabled event.
Screensharing without extensions in Chrome. Chrome 70 allows
screen sharing without an extension, using the MediaStream.getDisplayMedia()
method. Chrome asks the user to grant the page permission to share the screen.
In Chrome 70, go to chrome://flags
and select the "Enable Experimental Web
Platform Features" flag. We anticipate that this feature will be enabled in future
stable versions of Chrome (and Opera). With this setting enabled, calling
OT.checkScreenSharingCapability()
results in supported
being set
to true
and extensionRequired
being undefined.
Allowed IP list setting. Partners that have the allowed IP list
[add-on feature](https://tokbox.com/pricing)
enabled for an OpenTok project should set the new ipWhitelist
property
of the options
parameter of OT.initSession()
to
true
when instantiating a Session object.
Also see the list of fixed issues.
New Features in OpenTok.js 2.14
New Features in OpenTok.js 2.14.8 — August 2018
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.14.7 — June 2018
This release fixes some issues — see the list of
fixed issues.
New Features in OpenTok.js 2.14.6 — June 2018
This release fixes an issue in Chrome on Android — see the list of
fixed issues.
New Features in OpenTok.js 2.14.3 — May 2018
This release fixes a few known issues — see the list of
fixed issues.
New Features in OpenTok.js 2.14.2 — May 2018
This release fixes a few known issues — see the list of
fixed issues.
New Features in OpenTok.js 2.14.1 — May 2018
This release fixes a known issue in Chrome 64. See the list of
fixed issues.
New Features in OpenTok.js 2.14.0 — May 2018
Ability provide a preference for the publisher using a front-facing or back-facing
camera (on devices that support this). You can set this preference with the
facingMode
property of the options object you pass into the
OT.initPublisher() and
OT.getUserMedia()
methods. For example, you can set the property to "user"
(front-facing
camera) or "environment"
(rear-facing camera).
Ability to change the video input device used by a publisher. Calling
the
Publisher.cycleVideo() method changes the video input device (camera) used
by the publisher. With each call, the publisher cycles through the available video
input devices.
Event when a video codec is not supported on a subscribing client. If a
client's browser does not support the video codec used by a stream it subscribes to,
the Subscriber object dispatches a videoDisabled
event, and the
reason
property of the event object is set to
"codecNotSupported"
. For details, see the documentation for the
videoDisabled event.
New Features in OpenTok.js 2.13
New Features in February 2018 New in OpenTok.js 2.13.2
Bug fixes. This version fixes a number of known issues (see
Fixed issues).
New Features in February 2018 New in OpenTok.js 2.13.1
Bug fixes. This version fixes a number of known issues (see
Fixed issues).
New Features in January 2018 New in OpenTok.js 2.13.0
Publishing from a MediaStreamTrack. You can now publish audio and video
using a
MediaStreamTrack as the source of the stream's audio or video. When calling
OT.initPublisher(), you
can specify an audio MediaStreamTrack object as the audioSource
or you can
specify a video MediaStreamTrack object as the video source. Also, you can call the
new OT.getUserMedia()
method to get a MediaStream object that uses the microphone and camera as the audio and
video source (and you can then obtain the MediaStreamTrack object by calling the
getAudioTracks()[0]
and getVideoTracks()[0]
on the MediaStream
object). This feature is not supported in the OpenTok Plugin for Internet Explorer.
Support for stereo audio. You can now publish stereo audio by setting the
enableStereo
option to true
when calling the
OT.initPublisher() method.
Getting audio and video statistics for a publisher. You can now get audio
and video statistics for a Publisher by calling the
getStats() method
of the Publisher object. These stats include:
- The total number of audio and video packets lost
- The total number of audio and video packets received
- The total number of audio and video bytes received
- The current video frame rate
You can use these stats to assess the quality of the publisher's audio-video stream.
H.264 support in Internet Explorer This version adds H.264 support to
the OpenTok Plugin for Internet Explorer. This means that clients using the
plugin can interoperate with Safari clients (and others) in
Safari OpenTok projects.
Also see the list of fixed issues.
New Features on November 13, 2017 New in OpenTok.js 2.12.2
Bug fixes. This release includes a number of bug fixes. For details,
see the list of fixed issues.
New Features on October 3, 2017 New in OpenTok.js 2.12.1
Bug fixes for Safari. Safari support is now included in this version (and moved
out of beta). OpenTok.js now supports Safari 11 on macOS and Safari on iOS 11. For
information on video interoperability and other issues, see the
Safari browser support page.
New Features on September 12, 2017 New in OpenTok.js 2.12.0
Reduced file size. The opentok.min.js file is now about half the size of
version 2.11.6.
TypeScript support. TypeScript type definitions are available in the
@opentok/client npm package.
New Features on May 2, 2017 New in OpenTok.js 2.11
Audio tuning API. The OT.initPublisher()
method includes
options to set the desired audio bitrate, to disable automatic gain control,
to disable echo cancellation, and to disable noise suppression. See
this section
of the OpenTok developer guides for more information.
WebRTC version upgrade in the OpenTok Plugin for Internet Explorer.
The Plugin now uses WebRTC 56, which includes improvements for performance and
stability.
Updated text message for unsupported browser versions. In older, unsupported
versions of Chrome and Firefox, we have changed the end-user notification
to upgrade the browser, adding the option to continue at their own risk. You can call
OT.checkSystemRequirements()
to see if the browser is supported.
New Features on February 14, 2017 OpenTok.js 2.10.2
This version includes bug fixes. For details, see
Fixed issues.
New Features on February 5, 2017 OpenTok.js 2.10.1
This version includes bug fixes. For details, see
Fixed issues.
New Features on December 15, 2016 OpenTok.js 2.10.0
New name property of OpenTok Error objects. The Error object passed into
completion handlers for some methods now has a name
property. Use
this new name
property, instead of the code
property
(which is deprecated), to to identify the error programatically. For more information, see
the documentation of the Error object.
Improved video quality in the OpenTok Plugin for Internet Explorer. The
plugin uses a better interpolation method, resulting in improved video quality. Also,
we have fixed an issued with video
ing when a video's container is resized.
Frame rate statistics available in the Subscriber.getStats() method. The
callback function for the
Subscriber.getStats() method now includes a video.frameRate
property,
which is set to the video frame rate of the subscriber's video stream.
Work-around for a Chrome bug in which a Publisher fails to get access to the
microphone. This results in a Publish timeout error and a Subscriber error for any
subscriber trying to subscribe to the stream. This bug requires the user to restart the
browser and reload your page. As a work-around, when this bug occurs, the completion handler
of the Session.publish()
method is called with an error, and the
name
property of the error object is set to
"OT_CHROME_MICROPHONE_ACQUISITION_ERROR"
. In this case, you can notify
the user to restart the browser. Note: This
issue was
fixed in Chrome 63.
Visual indication when a subscriber is reconnecting to a stream. As part of the
OpenTok reconnection feature, subscribers will attempt to
automatically
reconnect to stream if it is dropped unexpectedly. When this occurs, the subscriber
element displays an icon indicating that the subscriber is trying to reconnect to the
stream (and this icon was added in v2.10.0).
Improved support for networks with authenticated proxies in the OpenTok Plugin
for Internet Explorer. For a large number of authenticated proxy networks,
clients using Internet Explorer can now publishing and subscribing to streams.
This version also includes bug fixes and performance improvements. For details, see
Fixed issues.
New Features on August 23, 2016 OpenTok.js 2.9.0
Scalable video. The OpenTok Media Router now includes the OpenTok
scalable video feature (previously in beta). For more information, see the
OpenTok Media Router
documentation.
Ability to use previously selected devices in the OpenTok Plugin. You can now have
the OpenTok Plugin for Internet Explorer use the camera and microphone the user previously
selected (from a previous visit to a page on the same HTTPS domain). For more information,
see the usePreviousDeviceSelection
property of the options
parameter of the
OT.initPublisher() method.
New Features on April 19, 2016 OpenTok.js 2.8.0
Access to the video element of a Publisher or Subscriber. You can now disable the
default user interface elements for Publishers and Subscribers and access the HTML
video
element directly. When publishing or subscribing to a stream, set the
new insertDefaultUI
property to false
when calling the OT.initPublisher() or
Session.subscribe() method and set an
event listener for the videoElementCreated
event dispatched by the Publisher
or Subscriber object. The element
property of the event is a reference to
the HTML video
element (or in Internet Explorer the object
element
containing the video) is created. For more information, see
Directly accessing the video
element for a Publisher or Subscriber.
New version of the Firefox screen-sharing extension. This new version,
available at the
screensharing-extensions repo, adds support for the extensionInstalled
property of the
OT.checkScreenSharingCapability() callback. In Firefox (using the new version of the
screen-sharing extension), this property is set to true
if the extension is
installed and set to work in the current page's domain. For details,
see the Screen sharing developer
guide.
New Features on November 30, 2015 OpenTok.js 2.7.0
Subscriber stream statistics. Use the
Subscriber.getStats()
method to get information about the subscriber's stream quality, including the following:
- Total audio and video packets lost
- Total audio and video packets received
- Total audio and video bytes received
To get statistics for a stream published by the local client, you must use a session
that uses the OpenTok Media Router (sessions with the
media mode set to routed), and
you must set the testNetwork
property to true
in the
options
object you pass into the
Session.subscribe() method.
The opentok-network-test repo
includes sample code for showing how to use statistics of a test stream before publishing
to a session.
Screen-sharing support in Internet Explorer. The OpenTok plugin for
Internet Explorer now supports publishing screen-sharing streams. For details,
see the Screen sharing developer
guide.
New new version of the Chrome screen-sharing extension. This new version,
available at the
screensharing-extensions repo, adds support for immediate use of the extension upon
installation (without reloading the page). The
OT.registerScreenSharingExtension() method now includes a version
parameter
to specify which version of the Chrome screen-sharing extension you are using.
New Features on October 2, 2015 OpenTok.js 2.6.7
Fixed issue with Firefox–Internet Explorer streaming.
This release fixes issues with streams transmitted between
clients using the OpenTok Plugin for Internet Explorer and Firefox
version 42.
New Features on July 23, 2015 OpenTok.js 2.6.1
This release fixes some known issues.
See Fixed issues.
New Features on July 15, 2015 OpenTok.js 2.6.0
New method for programmatically flagging an issue encountered when
using OpenTok.js. See the documentation for the
OT.reportIssue() method
and Reporting an issue.
Support for OT.getDevices() in Internet Explorer. See the documentation
for OT.getDevices()
and Setting
the camera and microphone used by the publisher.
New Features on April 17, 2015 OpenTok.js 2.5.1
Hiding built-in user interface controls for videos. You can turn off
all built-in user interface controls for a Publisher or Subscriber view,
by setting the showControls
property to false
when calling the
OT.initPublisher() or
Session.subscribe() method.
These controls include the name display, the audio level indicator, the
microphone control button (Publisher), the mute audio button, the video disabled
indicator (Subscriber), and the video disabled warning icon (Subscriber).
You can also control the display of each of these user interface controls
individually. For more information, see
Hiding
all built-in user interface controls for videos.
New errors. This release includes some new errors, with the following codes:
- 1026 — Terms of service violation: export compliance
- 1553 — ICE workflow error publishing
- 1554 — ICE workflow error subscribing
- 2001 — Unexpected response from the OpenTok server
For more information, see the reference documentation for the Error
object.
Other improvements. This release includes a number of improvements in performance and stability.
Please see
Features added in previous versions,
Known issues, and Fixed
issues.
New Features on January 8, 2015 OpenTok.js 2.4.0
Versioning and SRC path changes — See the note in the
Announcements section.
Screen-sharing support — You can now share your screen as the
video source for a publisher in Chrome and Firefox. Other clients (using OpenTok.js
or the OpenTok Android or iOS SDKs version 2.4) can subscribe to the screen-sharing
stream, just as they would subscribe to a stream that uses a camera as the
video source. For more information, see Screen
sharing — Web and the following sections of the OpenTok.js reference:
Control of cropping and letter-boxing of videos — You can now specify whether
videos will be cropped or letter-boxed when the aspect ratio of the video does not match the aspect
ratio of the DOM element. Set the fitMode
property when you initialize the
Publisher or Subscriber object. See the documentation for
OT.initPublisher()
and Session.subscribe().
Disabling the audio-fallback feature — The audio-fallback feature,
added in OpenTok.js 2.2.9, is available in sessions that use the the OpenTok Media Router.
With this feature, a subscriber to a stream will drop the stream's video (switching to
audio-only mode) due to poor stream quality (perhaps because of network conditions).
You can disable this feature by setting the audioFallbackEnabled
property
of the properties
parameter to false
when you call the
OT.initPublisher() method to create
a publisher. (Subscriber's to the published stream will not have the video stream
drop out due to poor stream quality.)
Disabling the built-in user interface controls for Publisher and Subscriber
videos — You can disable these default user interface controls by
by setting the showControls
property to false
in the
properties
parameter you pass into the
OT.initPublisher() or
Session.subscribe(). For more
information, see
Hiding
all built-in user interface controls for videos.
New Features on Aug 30, 2014 OpenTok.js 2.2.9
In Internet Explorer, when a page calls OT.initSession()
,
OT.initPublisher()
, or OT.upgradeSystemRequirements()
, it
prompts you to install the OpenTok Plugin (if you have not already). Once you have
installed the plugin and reloaded the page, OpenTok functionality is available on the
page (and on other pages that use OpenTok).
In Internet Explorer, when a page attempts to publish an OpenTok video, the OpenTok
plugin prompts the user to grant access to the camera and microphone.
For information on testing your app with the OpenTok Plugin for Internet Explorer, see
this
article.
See the list of known issues.
New features for audio-only streams — The following new
API and user interface enhancements add support for audio-only streams:
- By default, a Subscriber object displays an audio level indicator
when the stream drops video. You can control the display of this indicator
by setting the
audioLevelDisplayMode
style of the Subscriber
object. (See Session.subscribe()
and Subscriber.setStyle()).
- The new
audioLevelUpdated
event indicates audio level of a
Subscriber or Publisher audio stream. You can use this event to create your own
audio level meter or to detect the active speakers in a session. See the
audioLevelUpdated
Subscriber
event and Adjusting
user interface based on audio levels.
- When a Subscriber object is at risk of dropping video due to lower stream quality,
it displays a video disabled warning indicator. If the Subscriber then drops the video
due to poor stream quality, it displays a video disabled indicator. (This feature is
only available is sessions the use the OpenTok
Media Router.) You can control this default behavior by setting the
videoDisabledDisplayMode
style of the Subscriber object. (See Session.subscribe()
and Subscriber.setStyle().) The Subscriber
also dispatches videoDisabledWarning
, videoDisabled
, and
videoDisabledWarningLifted
events, and you can use these events along with the
videoDisabledDisplayMode
style to customize the appearance of the video disabled warning
indicator and the video disabled indicator. (See Subscriber
events)
- The
videoDisabled
event dispatched by the Subscriber now has a
reason
property. The videoDisabled
event is now dispatched
whenever the video is disabled, either due to poor stream quality, due to the publisher
disabling video, or due to the subscriber disabling video. The reason
property
describes the cause. Also, there is a new videoEnabled
event dispatched by the
Subscriber object. It also has a reason
property. These events are defined by the
VideoEnabledChangedEvent object.
For details, see the documentation for the videoDisabled
and videoEnabled
Subscriber events.
Allow/Deny Flow Removal — This version removes the user interface hints on how to
grant access to the camera and microphone, which were added in v2.2.5. After several months,
we haven't seen any evidence that points to changes in user behavior as a result of these instructions.
New Features on Aug 12, 2014 OpenTok.js 2.2.8
OpenTok Plugin for Internet Explorer — The new OpenTok
Plugin for Internet Explorer enables OpenTok sessions in
Internet Explorer. The plugin is now shipped in production. Developers
who were testing the beta plugin can use the plugin with the shipping
OpenTok.js library.
New Features on July 22, 2014 OpenTok.js 2.2.7
Device enumeration and selection — Use the OT.getDevices()
method to enumerate available audio and video input devices. You can now set the
audioSource
and videoSource
properties of the properties
parameter of the OT.initPublisher()
method to specify an audio and video input
device for the publisher to use. See OT.getDevices()
and OT.initPublisher() .
New Features on June 24, 2014 OpenTok.js 2.2.6
The OpenTok.js library presents user interface hints on how to grant access
to the camera and microphone (added in v2.2.5). In v2.2.6, there is a 5-second
delay before this message is displayed. You can prevent this message from being
displayed by calling the preventDefault()
method of the event object
in the
accessDialogOpened event handler.
New Features on May 30, 2014 OpenTok.js 2.2.5
The OpenTok.js library now presents user interface hints on how to grant access
to the camera and microphone. You can prevent this user interface from being displayed
by calling the preventDefault()
method of the event object
in the
accessDialogOpened and the
accessDenied event handlers.
New Features on March 30, 2014 OpenTok.js 2.2
For details on changes and features added in OpenTok 2.2, see
this
page.
For information on changes in previous versions, see
the release notes for
OpenTok.js 2.0.
Requirements
The OpenTok.js library is currently supported in:
-
Electron (latest release version)
-
Google Chrome (latest release version)
-
Google Chrome for Android (latest release version)
-
Beta support for Google Chrome for iOS (latest release version)
-
Firefox (latest release version)
-
Firefox for Android (latest release version)
-
Beta support for Firefox for iOS (latest release version)
-
Microsoft Edge versions 79+ for Windows and macOS (Chromium-based versions of Edge)
-
Safari on macOS and iOS (latest release version). For information on video interoperability
and other issues, see the Safari browser support page.
-
Opera (latest release version)
Important: OpenTok.js version 2.16 was the last version to support
the OpenTok Plugin for Internet Explorer. OpenTok.js version 2.16 was
deprecated in May 2020 for the Standard environment and June 2020 for
the Enterprise environment.
The OpenTok.js library uses port 443. Port 443 must be open on the client network.
Known issues
The following are known issues for this version of OpenTok.js:
For some users on macOS using the default webcam and Chrome 124+, audio and video can become
desynchronized over time. Restarting the browser fixes the problem. This issue has been reported as
a Chromium bug.
OpenTok 2.27 and later is not supported on Safari 14 and lower.
For iOS browser subscribers, in some cases, the audio level may be incorrect.
We are working on a fix for this issue. This issue has been reported as
a WebKit bug.
In Chrome Beta version 125.0.6422.4, using Media Processor APIs may cause video to freeze.
This does not impact the stable or canary versions of Chrome. This issue has been reported as
a Chromium bug.
On Windows, using background blur may cause a memory leak. We are working on a fix for this issue.
Screen share may freeze on Windows when certain apps are open. This issue has been reported as
a Chromium bug.
In some cases, subscribers using browsers on iOS 17+ are seeing a blank screen. We are working on a fix for this issue.
For iOS 17+ browser users, video flickers when device orientation is changed and with resizing of the video.
This issue has been reported as
a WebKit bug.
In Chromium browsers, closing the laptop lid while publishing causes the publisher to be destroyed.
This issue is a result of a Chromium bug.
Emojis unexpectedly appear in videos in iOS 17 and macOS 14 (Sonoma).
This is a result of the new Apple [Reactions](https://support.apple.com/en-us/105117) feature. At this time, there is no API or programmatic to turn this off. End-users must disable it during a video session. On macOS, click the green video camera icon in the Mac's menu bar and then deselect Reactions. On iOS and iPadOS, open Control Center (by swiping down from the top-right corner or bottom of the screen, depending on the device), tap Video Effects, and then tap Reactions to disable it.
For Firefox users on Android 13, video resolution may be incorrect when switching orientation.
Rotating a device running Android 13 may not cause the video resolution to be properly updated.
This issue is the result of a reported Mozilla regression.
Note: there is a
pull request to fix this issue.
In Safari 17.0 and Safari 17.1, video resolution setting ignored for screen-sharing video.
The resulting resolution is always 640x360, regardless of the resolution set when
initializing the Publisher. This issue has been reported as
a WebKit bug.
This issue is fixed in Safari version 17.2.
In Safari 16.6, screen-sharing a window causes the page to reload. This has been fixed in the latest Safari Technology Review and Safari 17 releases.
In Safari 16.6, audio is not heard if you subscribe to an audio-only stream. We are working on a fix for this issue.
For users on iOS 17+, video is initially displayed as the wrong resolution in a
video publisher, resulting in a visible flicker as the video resizes. This issue is the result of a
reported Webkit regression.
For users on Chrome version 116.0.5845.110 running on Apple Silicon-based computers, video is flipped upside down when using
a background blur or background replacement filter. This issue is the result of a
reported Chromium bug.
This issue is fixed in Chrome version 116.0.5845.140.
On iOS 16.4+ when using the iCloud Private Relay feature on Safari, users may
experience disconnects in relayed sessions. We are currently investigating this issue.
This has been reported as a WebKit bug.
On Safari, when calling the
OT.initPublisher() method for
initializing a screen-sharing publisher without a user gesture handler, you may receive an
InvalidAccessError
error.
This is expected behavior for Safari.
In some cases, "MaxListenersExceededWarning" may be logged in the console. This shouldn't cause any problems. We
are investigating this issue.
On iOS 14.8.1, a Publisher does not dispatch audioLevelUpdated events
after the camera is switched. This issue was fixed in iOS 15.
In some cases, when tab-sharing a Google Slides presentation, the video is
letter-boxed when the publisher's aspect-ratio is 4:3.
This issue is not present when screen-sharing the Google Slides presentation.
On Android 12 and 13, Chrome requires using the "Media Volume" to adjust the volume instead of the phone's volume slider. This issue has been reported as
a Chromium bug.
On iPhone 14 Pro and iPhone 14 Pro Max, there is no audio if a pre-call test is used before joining
a meeting. We are investigating this issue.
On Android 13, Firefox microphone and camera permissions require a device restart.
After you set the permissions in the browser, you need to restart the device for
the permissions to take effect.
On iOS 16, video resolution may be incorrect when switching orientation.
Rotating a device running iOS 16 may not cause the video resolution to be properly updated.
This has been reported as a WebKit bug.
Note that iOS 16 is currently in beta, and there is a
pull request to fix this issue.
iOS Safari audio and video loss after incoming phone call.
After an iOS device accepts an incoming phone call and returns to an OT session, the audio
and video from the iOS device may be dropped. This has been reported
here
and here
as WebKit bugs.
When background blur is enabled, cycling video may cause the camera LED to remain on, when
calling Publisher.publishVideo(false). We are working on a fix for this issue.
Changing the background blur strength may cause the publisher's view to be momentarily
black. We are working on a fix for this issue.
Publishing at Full High Definition (1080p) resolution in Firefox on macOS fails.
This issue has been reported as
a Mozilla bug.
Audio degradation over time on iOS/iPadOS devices with Safari.
The audio quality for streams published from Safari on iOS/iPadOS may degrade over time with a
growing crackling/distortion sound. This issue has been reported as
a WebKit bug.
Audio not changing when using Chrome's "Share this tab instead" feature.
Chrome does not use audio from the selected tab. We anticipate that the issue will
be fixed in Chrome 103. This issue has been reported as
a Chromium bug.
Audio issues when using Bluetooth devices in Safari 15.
When subscribing to audio using Bluetooth devices, the audio may sound as if a filter
was applied to it. For example, the audio received may sound robotic. We anticipate
that the issue will be fixed in Safari 15.4. This issue has been reported as
a WebKit bug.
Video can flicker for streams with the videoType set to "custom".
This can happen if video content doesn't change much. Setting the content hint
to text
or detail
mitigates the issue. See
this developer guide
topic and the documentation of the videoContentHint
property the options
you pass into the OT.initPublisher()
method and the
Publisher.setVideoContentHint() method. This issue has been reported as
a Chromium bug.
Audio issues when pausing and unpausing the camera or screen sharing in Safari 15.2.
In the address bar in Safari, if you click the camera icon and select the Pause option
followed by the Unpause option, you will hear your own audio in the speaker. This issue
also occurs if you share your screen. However, it does not occur in Safari on iOS,
which does not include the Pause camera option or screen-sharing capabilities. This issue
has been reported as a WebKit bug.
In Electron 17, an upcoming API change may cause screen-sharing to fail.
See
this Electron documentation page for details on the upcoming change. To
use screen-sharing in Electron 17 onward, you may need to make some changes
in your application. See
the Electron 17 sample application screen-sharing with the OpenTok.js library.
In iOS 15, publishing video using an HTML Canvas element as the video source may fail.
See this WebKit bug report.
On iOS 14.7+, the publisher's view may be black after being interrupted by Compact UI phone calls.
See this WebKit bug report.
The accessDialogOpened
event may be erroneously dispatched. When calling
the OT.getUserMedia()
method, the accessDialogOpened
event may be dispatched, even though no access dialog
was shown.
In relayed sessions, publishers may be unable to set audio bitrate of their audio stream.
OpenTok.js v2.21.1 fixes this issue.
For some Android web users, device orientation may corrupt the publisher's
video stream. We anticipate that the issue will be fixed on Chrome 97. This issue
affects a subset of users in a VP8 session where the Chrome experimental "WebRTC hardware
video encoding" setting is enabled. Disabling "WebRTC hardware video encoding" mitigates
the issue. Changing the device's orientation may help as well, but artifacts (such as a
green bar at the bottom of the video) may still be present. See
this Chromium bug report.
The issue also impacts mobile Firefox users. See
this Mozilla bug report.
On iOS 14.5, publishers who mute themselves may not be able to unmute.
This issue was fixed in iOS 14.6. See
this WebKit bug report.
Critical audio bug in Safari 14.0.1, Safari 14.0.2, and iOS 14.2. Audio
playback is stuttering in these browsers. This issue has been resolved in iOS 14.3,
and it is expected to be resolved in Safari 14.0.3 (for macOS) when it is released.
iOS users are advised to update to iOS 14.3, and macOS users are advised to use another
supported browser until Apple releases Safari 14.0.3. See
this WebKit bug report.
In Safari 13.1, if you call OT.getDevices() prior to
OT.initPublisher(), the publisher will not include a video stream.
We anticipate that the issue will be fixed in Safari 13.2.
If you call publishAudio(false) in a routed session,
clients using Chrome 65 fail to subscribe. We are working on a fix for this issue.
Publisher audio level meter and audioLevelUpdated events not working in Chrome 66.
See this Chromium
bug report.
The OpenTok Automatic Reconnection feature does not work in Firefox
or Internet Explorer. Firefox has a known issue with offline mode and peer connections
(see this Mozilla bug),
which Mozilla is working on.
One Publisher in the OpenTok Plugin for Internet Explorer. You can only add one
Publisher (within all browser windows and tabs).
Cannot hide a Publisher in the OpenTok Plugin for Internet Explorer.
Attempting to hide the a Publisher (by setting style.display
to
"none"
or by setting visibility
to "hidden"
)
can cause the publisher to fail. As a workaround, you can set the width and height of the
publisher to 2 or more pixels each; make sure that the publisher is in the DOM; and then
when the Publisher object dispatches the streamCreated
event, set the
visibility
to "hidden"
.
Safari clients sometimes cannot subscribe to streams published
in Firefox. If the Safari client is not first publishing a stream, it cannot subscribe to
a stream published by a client using Firefox. This is due to a
known issue in Safari.
Setting the frame rate does not work in Firefox on macOS when using the built-in
FaceTime camera. Setting the frameRate
option when calling
OT.initPublisher()
has no effect.
This is the Mozilla bug
report for the issue.
Setting the audio bitrate is not supported in streams published in Firefox.
Setting the audioBitrate
option of the OT.initPublisher()
method has no effect in Firefox.
Setting the frame rate does not work in the OpenTok Plugin for
Internet Explorer. Setting the frameRate
option when calling
OT.initPublisher()
has no effect.
Issues setting video source for a Publisher in Firefox. In an page loaded via HTTPS, if the
user clicks "Always Share" when granting access to the camera, you can only use that camera. You
cannot set the video source to another camera.
Echo cancellation disabled with stereo audio input in Chrome. Some browsers
(such as Chome 73+) do not support echo cancellation for stereo audio (see
this
Chrome issue report).
The OpenTok plugin for Internet Explorer does not work in sandboxed iframes. This is
an intentional limitation of the browser. The browser blocks plugin content inside a sandboxed frame.
WebRTC is a peer-to-peer protocol, and it is possible that connections will fail to connect. The most common cause
for failure is a firewall that the protocol cannot traverse. When OpenTok detects this failure, the OT object dispatches
an exception
event object, with the code
property set to 1013.
In Chrome, publishing is not supported on http (insecure) pages (except for
http://localhost). You must serve the page over https (secure). Note that for testing,
you can also load a page from the local file system (from the file: URI scheme).
Chrome on Android fails to subscribe to videos in Safari projects.
This only occurs in routed OpenTok sessions (sessions that use the
OpenTok Media Router).
OpenTok.js v2.13 fixes this issue in relayed sessions. See
this Chromium bug
report.
Desktop Safari displays videos upside down when using picture in picture mode. This issue only occurs
when subscribing to a video stream published by an iOS Safari client in a routed session.
Fixed issues
Fixed in OpenTok.js 2.28.3
In some cases, importing the SDK would cause an error.
We have fixed this issue.
In some cases, users could not be heard.
We have fixed this issue.
Fixed in OpenTok.js 2.28.1
The applyAudioFilter
type was incorrect in the TypeScript definition.
We have fixed this issue.
Safari subscribers were generating unnecessary errors when receiving audio only from publishers.
We have fixed this issue.
Fixed in OpenTok.js 2.27.7
In some cases, the audio level may return null.
We have fixed this issue.
Fixed in OpenTok.js 2.27.6
In some cases, end-to-end encryption was not working properly when the encryption secret was updated.
We have fixed this issue.
Fixed in OpenTok.js 2.27.5
Audio was occasionally lost when the audio input device was changed.
We have fixed this issue.
Video was opening in full screen for iOS 17 subscribers.
We have fixed this issue.
Video was occasionally going blank after joining a session.
We have fixed this issue.
Fixed in OpenTok.js 2.27.4
The target property of the Subscriber connected and disconnected events included some undefined values.
We have fixed this issue.
Fixed in OpenTok.js 2.27.3
In some cases, audio was not routed when switching audio input devices. We have fixed this issue.
In some cases, Electron apps running on Apple Silicon laptops could not publish. We have fixed this issue.
Fixed in OpenTok.js 2.27.2
In Safari, new subscribers were inaudible until bringing focus to the browser tab.We have fixed this issue.
Fixed in OpenTok.js 2.27.1
In some cases, when Live Captions were enabled, the stream.hasAudio property was not set correctly. We have fixed this issue.
In relayed sessions, subscriber video was freezing for users using browsers on iOS 17+. We have fixed this issue.
Fixed in OpenTok.js 2.26.4
In some cases, duplicate events were dispatched. We have fixed this issue.
Fixed in OpenTok.js 2.26.3
When transitioning backgrounds using the Publisher.applyVideoFilter() method,
the background momentarily changes to solid black. We have fixed this issue.
Fixed in OpenTok.js 2.26.2
Some legacy code used an eval-based expression. We have fixed this issue.
In Safari 16.6, audio was not heard if you subscribed to an audio only stream. We have fixed this issue.
An error was appearing in the console when users disconnected from sessions. We have fixed this issue.
When users unpublished screen sharing, an incorrect reason was sent. We have fixed this issue.
Fixed in OpenTok.js 2.26.1
In some cases, audio was lost when switching audio devices in a session. We have fixed this issue.
In some cases, subscribers were not able to mute publishers. We have fixed this issue.
In some cases, an error occurred when the audio input was changed. We have fixed this issue.
Fixed in previous versions
Show details.
Fixed in OpenTok.js 2.25.4
In relayed sessions, participants were sometimes unable to establish peer connections
when the transportPolicy
was set to relay
. The transportPolicy
setting is part of the Configurable
TURN servers add-on feature. We have fixed this issue.
Fixed in OpenTok.js 2.25.3
Participants were unable to update invalid end-to-end encryption passwords. We have fixed this issue.
Audio was occasionally lost when audio devices were switched during a session. We have fixed this issue.
Fixed in OpenTok.js 2.25.2
Reusing the same device ID in the Publisher.setVideoSource() method in Chrome
on Android produced blank video. We have fixed this issue.
Fixed in OpenTok.js 2.25.1
When background blur was enabled on an Android phone, cycling video sometimes caused the screen to go black. We have fixed this issue.
Fixed in OpenTok.js 2.25.0
In some cases, audio events were not displayed for publishers. We have fixed this issue.
Fixed in OpenTok.js 2.24.7
Added fixes to the default UI.
Fixed in OpenTok.js 2.24.6
In some cases, participants were unable to unmute their audio. We have fixed this issue.
Fixed in OpenTok.js 2.24.5
Video filters were causing delayed or dropped video. We have fixed this issue.
Fixed in OpenTok.js 2.24.4
Background blur was not working if EU proxy was enabled. We have fixed this issue.
Fixed in OpenTok.js 2.24.3
Poor background blur performance on certain devices. We have fixed this issue.
Fixed in OpenTok.js 2.24.2
In some cases, importing a webpack module would cause an error. We have fixed this issue.
In some cases, when background blur was enabled, warnings were logged in the console. We have fixed this issue.
Fixed in OpenTok.js 2.24.1
Applying video filters may have caused a memory leak. We have fixed this issue.
When background blur or replacement was applied in sessions with IP Proxy enabled, certain assets were not being proxied. We have fixed this issue.
Fixed in OpenTok.js 2.23.9
The Session.setIceConfig() method was forcing reconnects. We have fixed this issue.
The Session.setIceConfig() method excluded some servers. We have fixed this issue.
The MediaProcessorConnector
type was incorrect in the TypeScript definition.
We have fixed this issue.
Applying video filters to multiple publishers could fail. We have fixed this issue.
In some cases, the camera LED stays on when cycling video with background blur enabled. We have fixed this issue.
When background blur was enabled in sessions with IP Proxy enabled, certain assets were not being proxied. We have fixed this issue.
In some cases, when publishing video failed, no exception was thrown. We have fixed this issue.
Fixed in OpenTok.js 2.23.8
Publishing with muted video may take longer than usual in Firefox. We have fixed this issue.
In some cases, when cycling video failed, no exception was thrown. We have fixed this issue.
Fixed in OpenTok.js 2.23.7
Clients were unable to subscribe to their own streams. We have fixed this issue.
Fixed in OpenTok.js 2.23.5
Publisher.getStyle()
was returning an incorrect TypeScript definition.
We have fixed this issue.
In routed sessions, publishing with muted video may take longer than usual. We have fixed this issue.
In some cases, when a video filter was applied, performance was sluggish. We have fixed this issue.
Fixed in OpenTok.js 2.23.4
In relayed sessions, audio and video may be momentarily desynchronized during the start of a session.
We have fixed this issue.
There was a momentary blip when changing video backgrounds. We have fixed this issue.
There was a missing typescript definition for setVideoMediaConnector
.
We have fixed this issue.
Fixed in OpenTok.js 2.23.3
When background blur is enabled, the camera LED would remain on after disconnecting from a session.
We have fixed this issue.
When background blur or replacement is enabled, some assets were download from non-OpenTok domains.
We have fixed this issue.
The TypeScript type definition was missing for videoFilter
type BackgroundReplacementFilter
We have fixed this issue.
Fixed in OpenTok.js 2.23.2
With IP proxy enabled, using background blur disables some client logs. These logs are
used for analytics and tools like Inspector.
We have fixed this issue.
In Firefox, switching a publisher’s camera while enabling/disabling the video may not result in the
correct camera image being displayed. We have fixed this issue.
Fixed in OpenTok.js 2.23.1
Currently on relayed sessions when using picture-in-picture mode, macOS Safari
flips video received from iOS browsers. We have fixed this issue.
When changing the level of blurriness of a background blur video filter,
a black screen is displayed momentarily. This happens when calling the
Publisher.applyVideoFilter()
method with a new blurStrength
value. We have fixed this issue.
Turning background blur off and on or changing it could cause a memory leak. We have fixed this issue.
Fixed in OpenTok.js 2.23.0
The TypeScript type definition was missing for the PublisherProperties.enableStereo
We have fixed this issue.
When publishers were reused in a different session, their properties were not being updated.
We have fixed this issue.
Fixed in OpenTok.js 2.22.4
In some cases, screen sharing was muted when audio was toggled.
We have fixed this issue.
In relayed sessions, maximum bitrate was not being limited.
We have fixed this issue.
Fixed in OpenTok.js 2.22.3
Subscribing to streams in Safari 15+ can fail in relayed sessions.
We have fixed this issue.
Fixed in OpenTok.js 2.22.2
In some cases, the publisher’s connection was broken after cycling video when a device was unavailable.
We have fixed this issue.
Fixed in OpenTok.js 2.22.1
In some cases, users may momentarily see a black square when video is playing. We have fixed this issue.
Fixed in OpenTok.js 2.21.8
In some cases, screen sharing was muted when audio was toggled. We have fixed this issue.
Fixed in OpenTok.js 2.21.7
Using Safari on iOS 15.2, the subscriber’s view could be black after being interrupted by Compact UI phone calls. We have fixed this issue.
In some cases, an incorrect error code ('OT_STREAM_LIMIT_EXCEEDED') was returned when failing to subscribe. We have fixed this issue.
Fixed in OpenTok.js 2.21.6
The Publisher maxResolution constraint for screen sharing was ignored in Safari. We have fixed this issue.
OT.setAudioOutputDevice() was missing from the TypeScript definition. We have fixed this issue.
OT.getAudioOutputDevice() was missing from the TypeScript definition. We have fixed this issue.
Fixed in OpenTok.js 2.21.5
In some cases, the publisher’s connection was occasionally being destroyed after a short reconnection. We have fixed this issue.
Fixed in OpenTok.js 2.21.2
In some cases, the publisher’s connection was occasionally being destroyed after a short reconnection.
We have fixed this issue.
Fixed in OpenTok.js 2.20.5
In some cases, the publisher’s connection was occasionally being destroyed after a short reconnection.
We have fixed this issue.
Fixed in OpenTok.js 2.20.4
In some cases, 'custom' video sources with static video would flicker.
We have fixed this issue.
In Safari on iOS 15, video may appear rotated if the application is backgrounded.
We have fixed this issue.
In relayed sessions, the audioBitrate
option for OT.initPublisher()
was ignored. We have fixed this issue.
Fixed in OpenTok.js 2.20.3
On rare occassions, some publishers were unknowingly disconnected from a session.
We have fixed this issue.
Fixed in OpenTok.js 2.20.2
Toggling video on/off in WebView on Android does not work.
We have fixed this issue.
Fixed in OpenTok.js 2.20.1
Use Unified Plan SDP on Chromium-based browsers where supported. New versions of
Chromium-based browsers support a standards-based WebRTC SDP format (called “Unified Plan”).
This OpenTok.js update enforces use of the Unified Plan on these browsers and prevents them
from logging a warning that Plan B is being removed. For legacy browsers, OpenTok.js continues
to use Plan B.
In Safari on iOS 14.5.1+, the subscriber's view may be black after being interrupted by Compact UI phone calls.
We have fixed this issue.
OpenTok.js 2.20.0 was not working with Electron.
We have fixed this issue.
Fixed in OpenTok.js 2.19.5
In some cases, 'custom' video sources with static video would flicker.
We have fixed this issue.
In Safari on iOS 15, video may appear rotated, if the application is backgrounded.
We have fixed this issue.
In relayed sessions, the audioBitrate
option for OT.initPublisher() was ignored.
We have fixed this issue.
Fixed in OpenTok.js 2.19.4
Use Unified Plan SDP on Chromium-based browsers where supported. New versions of
Chromium-based browsers support a standards-based WebRTC SDP format (called “Unified Plan”).
This OpenTok.js update enforces use of the Unified Plan on these browsers and prevents them
from logging a warning that Plan B is being removed. For legacy browsers, OpenTok.js continues
to use Plan B.
In Safari on iOS 14.5.1+, the subscriber's view may be black after being interrupted by Compact UI phone calls.
We have fixed this issue.
Fixed in OpenTok.js 2.19.3
In Electron 12+, you could not publish a screen-sharing stream using a preload script
to access the desktop capturer. We have fixed this issue.
In some cases, an error was logged when calling session.disconnect().
We have fixed this issue.
Publisher.cycleVideo() and Publisher.setVideoSource() were not working in Android Firefox.
We have fixed this issue.
In Safari on iOS 14, the publisher's view may be black after being interrupted by Compact UI phone calls.
We have fixed this issue.
Fixed in OpenTok.js 2.19.2
Some RTT stats were reported in the wrong units.
We have fixed this issue.
In some cases, calling Subscriber.setPreferredResolution() did not take effect.
We have fixed this issue.
In Safari on iOS 13+, publishers may not regain access to their microphone after being interrupted by Compact UI phone calls.
We have fixed this issue.
Fixed in OpenTok.js 2.19.1
When sharing a browser tab in a screen-sharing stream in Chrome and Edge,
users were unable to share the tab's audio. Chrome 74+ and Edge 79+ let
the user share a browser tab's audio (by selecting the "Share audio" option when
selecting the tab to share). This was not working. We have fixed this issue.
Under certain circumstances, Android Chrome would throw an error when calling setVideoSource().
We have fixed this issue.
Fixed in OpenTok.js 2.19.0
The TURN sever name was not correctly being logged in the QoS stats.
We have fixed this issue.
Fixed in OpenTok.js 2.18.5
Use Unified Plan SDP on Chromium-based browsers where supported. New versions of
Chromium-based browsers support a standards-based WebRTC SDP format (called “Unified Plan”).
This OpenTok.js update enforces use of the Unified Plan on these browsers and prevents them
from logging a warning that Plan B is being removed. For legacy browsers, OpenTok.js continues
to use Plan B.
In Safari on iOS 14.5.1+, the subscriber's view may be black after being interrupted by Compact UI phone calls.
We have fixed this issue.
In Electron 12+, you could not publish a screen-sharing stream using a preload script
to access the desktop capturer. We have fixed this issue.
In some cases, an error was logged when calling session.disconnect().
We have fixed this issue.
Some RTT stats were reported in the wrong units.
We have fixed this issue.
In some cases, calling Subscriber.setPreferredResolution() did not take effect.
We have fixed this issue.
In Safari on iOS 13+, publishers may not regain access to their microphone after being interrupted by Compact UI phone calls.
We have fixed this issue.
When sharing a browser tab in a screen-sharing stream in Chrome and Edge,
users were unable to share the tab's audio. Chrome 74+ and Edge 79+ let
the user share a browser tab's audio (by selecting the "Share audio" option when
selecting the tab to share). This was not working. We have fixed this issue.
Fixed in OpenTok.js 2.18.4
In certain circumstances, subscribers were experiencing reduced audio quality.
We have fixed this issue.
Subscribers were sometimes receiving black frames when subscribing to video on iOS 14.
We have fixed this issue.
Fixed in OpenTok.js 2.18.3
Publishers were losing video after cycling a muted camera device.
We have fixed this issue.
Certain video QoS stats were being improperly calculated in sessions that use scalable video.
We have fixed this issue.
On Windows machines, attempting to cycle to an already in-use device could result in a publisher not seeing video.
We have fixed this issue.
On iOS 14, publishers were losing video when the video element became hidden.
We have fixed this issue.
On iOS, publishers were losing audio after being interrupted by a full-screen call.
We have fixed this issue.
On iOS under certain circumstances, the camera resource was not being released when destroying a publisher.
We have fixed this issue.
Subscribers were improperly reporting RTT stats.
We have fixed this issue.
The UI displayed by calling OT.upgradeSystemRequirements() included improperly formatted text.
We have fixed this issue.
Fixed in OpenTok.js 2.18.2
RTT stats were not being properly logged for sessions that use scalable video.
This would cause incorrect statistics to be reported in Inspector.
We have fixed this issue.
Subscribers were losing audio when a stream's publisher mutes video.
We have fixed this issue.
Safari was failing to recieve video from Chrome-based publishers under specific circumstances.
We have fixed this issue.
Safari iOS users were failing to recieve audio from audio-only streams.
We have fixed this issue.
Fixed in OpenTok.js 2.18.1
In Chrome 84+, the Publisher.getStats() method was not reporting the complete statistics for Scalable Video streams.
We have fixed this issue.
Automatic reconnections may have failed in relayed sessions in some scenarios.
We have fixed this issue.
Subscriber Video Dimensions weren't being logged correctly. This would cause incorrect dimensions to be
reported in Inspector. We have fixed this issue.
In relayed sessions, subscribers to streams published by Firefox 80 failed to receive audio and video.
We have fixed this issue.
Fixed in OpenTok.js 2.18.0
TypeScript definition corrections. This version fixes some OpenTok.js
TypeScript definitions.
In iOS Safari 13, sometimes a subscriber could not play audio from an audio-only stream.
We have fixed this issue.
The Publisher.getStats() method sometimes didn't include packetsLost.
We have fixed this issue.
CSS layout issue with archive status indicator. We have fixed this issue.
Fixed in OpenTok.js 2.17.7
In some cases, subscribers were not recovering properly after temporarily
having network issues. We have fixed this issue.
Fixed in OpenTok.js 2.17.6
In some cases, Chrome subscribers could not hear audio from Firefox publishers in relayed sessions. We have fixed this issue.
Disabling audioLevelUpdated events may not decrease CPU usage as expected. We have fixed this issue.
Fixed in OpenTok.js 2.17.5
In some browsers, warnings were being logged in the console. We have fixed this issue.
In some cases, ElectronJS screen-sharing streams weren't being optimized. We have fixed this issue.
OT.unblockAudio() was missing from the TypeScript definition. We have fixed this issue.
Fixed in OpenTok.js 2.17.4
In some cases, Chrome and Safari would cause routed sessions to crash when reconnecting. We have fixed this issue.
Fixed in OpenTok.js 2.17.3
In ElectronJS 7+, you could not publish a screen-sharing stream. We have fixed this issue.
In iOS Safari, the Publisher.cycleVideo() method returned "No video devices available". We have fixed this issue.
Fixed in OpenTok.js 2.17.2
In Safari 13.1, OT.getDevices() did not return video sources. We have fixed this issue.
In Safari, sometimes a subscriber could not hear audio from an audio-only stream. We have fixed this issue.
The Publisher.cycleVideo() method sometimes returned an empty object. We have fixed this issue.
Fixed in OpenTok.js 2.17.1
Screen sharing was not working in Opera. We have fixed this issue.
The Publisher.cycleVideo() method did not iterate through all camera sources in order. We have fixed this issue.
The following WebRTC properties are now omitted for logging when the IP Proxy feature is used:
audioLocalAddress, audioRemoteAddress, videoLocalAddress, and videoRemoteAddress.
The code property for the 'Unable to Subscribe to a stream in a reasonable amount of time' Error object was missing.
We have fixed this issue.
The SDK would throw an error if a specific property from WebRTC getStats was null.
We have fixed this issue.
Fixed in OpenTok.js 2.16.6
Publishing screen-sharing streams failed in Chrome when the videoSource was set to 'browser',
'application', or 'window'. We have fixed this issue.
End-users on Safari were hearing an echo. We have fixed this issue.
The SDK was not logging all of the round-trip time for audio and video quality statistics.
We have fixed this issue.
Fixed in OpenTok.js 2.16.5
The hardware camera access indicator (green light) was still on when calling Publisher.publishVideo(false).
We have fixed this issue in all browsers except Internet Explorer.
The SDK was not respecting the frameRate property when the videoSource property was set to 'screen'.
We have fixed this issue.
The Promise returned by the Publisher.cycleVideo() method was not rejected when
the Publisher's videoSource was set to 'screen' or 'custom'. We have fixed this issue.
Fixed in OpenTok.js 2.16.4
Calling Subscriber.setPreferredFrameRate() sent messages to the OpenTok cloud even when the preferred frame rate had not changed.
We have fixed this issue.
The SDK was setting Electron as external dependency which was breaking RequireJS.
We have fixed this issue.
Fixed in OpenTok.js 2.16.3
Audio was garbled when participants on iOS Safari were subsribing to more than 1 stream.
We have fixed this issue.
Participants on iOS Safari were unable to hear audio when video on the corresponding publisher was disabled.
We have fixed this issue.
When subscribing to a screen-sharing stream in a second tab in Chrome, the subscriber view was black.
We have fixed this issue.
Internet Explorer 11 may crash when initializing the OpenTok plugin for Internet Explorer.
We have fixed this issue.
Fixed in OpenTok.js 2.16.2
Mute icon displayed for subscribers in Safari when it should not.
We have fixed this issue.
The audioLevelUpdated event incorrectly reports audio levels of 0
in some browsers. We have fixed this issue.
The non-minified version of OpenTok.js is minified. We have fixed
this issue.
Fixed in OpenTok.js 2.16.1
When serving over HTTP Chrome 74 is detected as an incompatible browser. We have fixed this issue.
Fixed in OpenTok.js 2.16.0
Subscriber.subscribeToVideo(false) causes all subscribers to stop subscribing
to video in the OpenTok Plugin for Internet Explorer. We have fixed this issue.
Publisher.setAudioSource() can cause the Publisher view to be removed in Firefox.
We have fixed this issue.
Publishing a screen-sharing screen in the OpenTok Plugin for Internet Explorer
fails if there is no camera on the system. We have fixed this issue.
Publisher.cycleVideo() doesn't work in an Android webview.
We have fixed this issue.
The audioLevel event does not work in Safari if you haven't published
and granted access to a microphone. We have fixed this issue.
Cannot subscribe to screen-sharing screen when publishVideo is
initially set to false (for the stream's publisher). We have fixed this
issue.
The Publisher streamDestroyed event is sometimes not dispatched.
This could occur if you call Publisher.destroy()
just after
calling Session.unpublish()
. We have fixed this issue.
TypeScript definition corrections. This version fixes some OpenTok.js
TypeScript definitions.
Fixed in OpenTok.js 2.15.11
New autoplay policy in Firefox 66. Firefox 66 introduces a new
autoplay
policy that is similar to those in Chrome and Safari. This patch brings
the same autoplay behavior to Firefox that we have in Safari and Chrome.
The result is that if you subscribe to a stream and you are not publishing,
Firefox requires some user interaction for the subscriber audio to start playing.
This patch adds a muted icon that appears over the Subscriber video. When the user
clicks this icon, the subscriber audio starts the playback.
Fixed in OpenTok.js 2.15.10
Subscriber video sometimes freezes in Internet Explorer after about 1 minute. We have fixed this issue.
Fixed in OpenTok.js 2.15.9
The PeerConnection does not reconnect when switching between networks. We have fixed this issue.
The “streamDestroyed” Event is not dispatched when you call destroy on a Publisher. We have fixed this issue.
Calling cycleVideo repeatedly on Chrome on Android results in a broken Publisher. We have fixed this issue.
Audio output level meter turns into a square instead of a bubble sometimes. We have fixed this issue.
It takes a long time to publish an audio-only Publisher (videoSource=false). We have fixed this issue.
Passing classNames to widgetView is deprecated warnings. We have removed these incorrect warnings.
Fixed in OpenTok.js 2.15.8
When sharing a screen or a tab in Chrome, the Publisher intermittently flickers to show the silhouette image
and then back to the screen again. We have fixed this issue. We also filed
a bug with Chrome about this issue.
Fixed in OpenTok.js 2.15.7
Screen sharing not working in Chrome 72. We have fixed this issue.
"WebSocket is already in CLOSING or CLOSED state" received in an infinite loop
upon reconnecting. We have fixed this issue.
CPU usage increases when publishing audio-only streams. This would occur when
you use audioLevelUpdated
events. We have fixed this issue.
Fixed in OpenTok.js 2.15.6
Use Plan B SDP Semantics in Chrome 72. With the release of Chrome 72, the default SDP Semantics changed from Plan B
to Unified plan. This change requests Plan B, which makes the behavior the same as Chrome 71 and below.
Fixed in OpenTok.js 2.15.5
Calling publisher.cycleVideo() in Chrome 71+ results in a black Publisher. We have fixed this issue.
Subscribing to a screen-sharing stream in Chrome 71+ sometimes results in the audio blocked UI showing up. We
have fixed this issue.
Fixed in OpenTok.js 2.15.4
New autoplay policy in Chrome 71. Chrome 71 introduces a new
autoplay policy that is similar to the
one in Safari. This patch brings the same autoplay behavior that we have in Safari to Chrome. The result is that if you subscribe
to a stream and you are not publishing, Chrome requires some user interaction for the subscriber audio to start playing.
This patch adds a muted icon that appears over the Subscriber video. When the user clicks this icon, the subscriber audio
starts the playback.
accessDialogClosed is not working. We have fixed this issue.
Cannot read property 'sampleQos' of undefined error when using Chrome mobile. We have fixed this issue.
Fixed in OpenTok.js 2.15.3
Warnings and errors not being logged to the console by default. We have fixed
this issue.
Fixed in OpenTok.js 2.15.2
Subscriber not being cleaned up on 'streamDestroyed' Event. We have fixed this issue.
OPENTOK banner in the console. We have made the OPENTOK banner only display
in the console when logLevel
is set to OT.DEBUG
.
Fixed in OpenTok.js 2.15.1
TypeScript definition corrections. This version fixes some OpenTok.js
TypeScript definitions.
The OpenTok plugin for Internet Explorer was loading over HTTP, not HTTPS.
We have fixed this issue.
Fixed in OpenTok.js 2.15.0
Failure to publish after opening a tab a second time in Safari.
We have fixed this issue.
The publisher audio level indicator does not work after you call
Publisher.cycleVideo() in Safari on iOS. We have fixed this issue.
Issue with camera access permissions in the OpenTok plugin.
We have fixed this issue.
Fixed in OpenTok.js 2.14.8
publisher.cycleVideo() does not work if the current camera was disconnected. We have fixed this issue.
Publisher.cycleVideo() does not release the previous camera (the camera light stays on). We have fixed this issue.
Publisher.cycleVideo() does not trigger accessDialogOpened or accessDialogClosed Events. We have fixed this issue.
Publisher.cycleVideo() does not respect the frameRate or resolution settings. We have fixed this issue.
Publisher.cycleVideo() does not pick a new device the first time it is called. We have fixed this issue.
Internet Explorer crashes when communicating with TURN server. We have fixed this issue.
The OpenTok plugin for Internet Explorer crashes due to core audio corruption. We have fixed this issue.
Fixed in OpenTok.js 2.14.7
Safari on iOS cannot not publish if the user previously subscribed to a stream but did not allow audio before the Subscriber was destroyed. We have fixed this issue.
When calling subscriber.subscribeToVideo(false) the “bad network icon” appears. We have fixed this issue.
cycleVideo() does not work in Chrome on Android devices that do not support H.264 (eg. Huawei or HTC devices) with a Safari API key. We have fixed this issue.
Fixed in OpenTok.js 2.14.6
Audio stops working when you cycleVideo on an Android device in v2.14.3. We have fixed this issue.
Fixed in OpenTok.js 2.14.3
frameRate property on the Publisher is not working in Safari Tech Preview. We have fixed this issue.
A subscriber created with subscribeToAudio:false cannot turn audio back on in Chrome 66. We have fixed this issue.
session.off() without any arguments triggers a TypeError exception. We have fixed this issue.
Chrome 66+ fails to subscribe to Safari in a non-Safari Project (audio-only). We have fixed this issue.
Edge fails to subscribe to Safari in a non-Safari Project (audio-only). We have fixed this issue.
audioLevelUpdated event not called when registered immediately after subscriber created. We have fixed this issue.
Appending a video element to the DOM on the videoElementCreated event when using insertDefaultUI:false does not work. We have fixed this issue.
Deprecated streams and connections arrays on the sessionConnected event were prematurely removed. We have fixed this issue.
facingMode is required instead of optional in the TypeScript definition. We have fixed this issue.
"Cannot read property 'streamChannelUpdate' of null" error when calling publishAudio() or publishVideo() on a publisher that is not connected to a session. We have fixed this issue.
videoElement does not have a srcObject property when the videoElementCreated event is dispatched. We have fixed this issue.
publisher.cycleVideo() not working on Chrome on Android devices. We have fixed this issue.
subscribeToVideo() and subscribeToAudio() missing from the
TypeScript definition. We have fixed this issue.
Fixed in OpenTok.js 2.14.2
Errors using Chrome 64 and lower. We have fixed this issue.
Fixed in OpenTok.js 2.14.1
Increase in errors when publishing and subscribing in Edge.
We have fixed this issue.
Error when reusing a Publisher object to publish to a new
session. We have fixed this issue.
OpenTok.js not working with the opentok-angular library.
We fixed this by restoring undocumented APIs that were used by this library.
Fixed in OpenTok.js 2.14.0
The archiveStatusDisplayMode option for OT.initPublisher()
is not working. We have fixed this issue.
Unable to get audio stats on muted subscriber in the
OpenTok Plugin for Internet Explorer. Calling Subscriber.getStats()
in
Internet Explorer when the subscriber is muted results in bytesReceived
being
incorrectly set to 0. This issue prevents the
opentok-network-test-js
Node module from working in Internet Explorer. We have fixed this issue.
Error when trying to subscribe to more than six streams.
Clients are sometimes unable to subscribe to a large number of streams (six or more) at a time.
This would result in an error with the message set to "Error: Publish Error: OT.Publisher
PeerConnection Error: Failed to construct 'AudioContext'". We have fixed this issue.
Memory leaks can cause a long-running app to crash.
We have fixed this issue.
The mouse pointer blinks when publishing a screen-sharing stream in
the OpenTok Plugin for Internet Explorer. We have fixed this issue.
Internet Explorer crashes when no audio or video input device
is avaliable. We have fixed this issue.
Unable to publish stereo audio. The enableStereo
option did not work with stereo microphones in relayed sessions. We have fixed this issue.
The audioLevelUpdated event is not working in Safari. In a
Safari client, the audioLevel
property of an audioLevelUpdated
event
was always set to 0. This issue is fixed in Safari.
Fixed in OpenTok.js 2.13.2
OpenTok.js unable to work in apps that use RequireJS.
This bug was introduced in OpenTok.js 2.13.1. We have fixed this issue.
Getting error "Cannot read property 'id' of undefined" when setting connectionEventsSuppressed to true.
This bug was introduced with v2.13.1. We have fixed this issue.
Calling Session.forceDisconnect() was triggering sessionReconnecting events.
This bug was introduced with v2.13.0. We have fixed this issue.
Fixed in OpenTok.js 2.13.1
Applications could crash when the OT.initSesison() connectionEventsSuppressed option is set to true. We have fixed this issue.
Screensharing does not work in Electron. We have fixed
this issue.
Unable to load OpenTok.js on a page with a content security
policy that does not allow unsafe eval. Version 2.13.0 included a dependency that used
eval()
. We have removed this dependency and fixed this issue.
Fixed in OpenTok.js 2.13.0
Chrome screen-sharing video flickering. This
sometimes happened in Safari OpenTok projects.
We have fixed this issue.
videoWidth and videoHeight values incorrect for screen-sharing
streams. Sometimes when you subscribed to a screensharing stream, the initial values for
videoWidth
and videoHeight
were incorrect. We have fixed this
issue.
videoWidth and videoHeight values incorrect in Internet
Explorer. When you subscribed to a stream in the OpenTok Plugin for Internet Explorer,
the initial values for videoWidth
and videoHeight
were incorrect.
We have fixed this issue.
Unable to turn audio on after muting it in Safari on iOS.
After setting subscribeToAudio
to false
, setting it to
true
did not work. We have fixed this issue.
Fixed in OpenTok.js 2.12.2
The OpenTok plugin for Internet Explorer does not work on networks that have proxies
with NTLM authentication. We have fixed this issue.
In the OpenTok plugin for Internet Explorer, when navigate away from a page while
the camera/microphone permission dialog is displayed, you must restart the browser
to get it back. We have fixed this issue.
Publishing and subscribing issues in Edge. We have fixed publishing and subscribing
issues in Edge.
Publishing would occassionally result in an SDP remote answer STATE_INPROGRESS error.
We have fixed this issue.
Fixed in OpenTok.js 2.12.1
Bug fixes for Safari. Safari support is now included in this version (and moved
out of beta). OpenTok.js now supports Safari 11 on macOS and Safari on iOS 11. For
information on video interoperability and other issues, see the
Safari browser support page.
Fixed in OpenTok.js 2.12.0
Error when loading OpenTok.js after the page loads. We have fixed this issue.
No OT_PERMISSION_DENIED error when the user selects no camera or microphone in
the OpenTok plugin for Internet Explorer. We have fixed this issue.
Screen-sharing Publisher is not destroyed when the app that is the source of the stream
is closed. This was an issue in the OpenTok plugin for Internet Explorer. We have
fixed this issue.
Subscriber.setAudioVolume(0) and mute button not working in the OpenTok plugin for
Internet Explorer. We have fixed this issue.
The OpenTok plugin for Internet Explorer captures an audio device before it needs to
(prior to a Publisher being initialized). We have fixed this issue.
Fixed in OpenTok.js 2.11.7
Unsupported message not displayed in Safari 11. When you try to use this
version of OpenTok.js in Safari, the library should display a message saying that it
is unsupported. Safari 11 support is added in OpenTok.js 2.12.1+. We have fixed this
issue.
Fixed in OpenTok.js 2.11.6
Publishing an audio-only stream fails in Chrome on Android. We have fixed this issue.
Publishing fails if the video element is outside of the viewport in Chrome on Android.
We have fixed this issue.
Fixed in OpenTok.js 2.11.5
In a page loaded from the file://
URI scheme, OpenTok.js displays an alert
that says WebRTC is prevented due to browser permissions. This is no longer true.
All browsers supported by OpenTok now allow camera access, microphone access, and WebRTC
communications in pages loaded from the file://
URI scheme.
Fixed in OpenTok.js 2.11.4
A subscriber may perminently drop the audio track when audio is muted. We have fixed
this issue.
Fixed in OpenTok.js 2.11.3
Fixed an incompatibility with older Chrome browsers.
Fixed in OpenTok.js 2.11.2
Fixed an incompatibility with older Chrome browsers.
Fixed in OpenTok.js 2.11.1
Unable to dismiss the warning displayed in unsupported browsers. We have fixed
this issue.
Fixed in OpenTok.js 2.11.0
Screen-sharing support in Electron apps. We have fixed an issue that prevented screen
sharing from working in Electron.
Audio echoing in the OpenTok Plugin for Internet Explorer. Subscribers using the
OpenTok Plugin would cause audio to echo for other participants. We have fixed this issue.
Clicking the Publisher's mute microphone button causes a "callback is not a function"
error to be logged in the console. We have fixed this issue.
The Publisher is not destroyed when the user denies access to the camera or microphone.
We have fixed this issue.
The Publisher.stream.videoDimensions value is wrong in Firefox. We have fixed this issue.
Cannot publish with a framerate of 1 in Chrome. We have fixed this issue.
Calling Subscriber.subscribeToVideo(true) can cause the Subscriber to re-subscribe.
We have fixed this issue.
Clicking a Publisher or Subscriber elements contained in a form element causes
the form to submit. We have fixed this issue.
OT.checkScreenSharingCapability() incorrectly indicates screen-sharing is supported
in Chrome on Android. We have fixed this issue.
A Subscriber element is not always destroyed if the subscriber fails to initially
connect to the stream. We have fixed this issue.
Fixed in OpenTok.js 2.10.2
Specifying the resolution or frame rate along with a video source can cause publishing
to fail in Chrome. We have fixed this issue.
Fixed in OpenTok.js 2.10.1
Setting the video resolution of a published stream was not working in Firefox.
We have fixed this issue.
Setting the video resolution of a published stream was not working on a page that
also loads adapter.js We have fixed this issue.
Fixed in OpenTok.js 2.10.0
Video flickers when its container is resized the OpenTok Plugin for Internet
Explorer. We have fixed this issue.
There was a three-second delay when subscribing to a stream in the OpenTok Plugin
for Internet Explorer. We have fixed this issue.
The "contain" setting for the fitmode property is not working in the OpenTok Plugin
for Internet Explorer. We have fixed this issue.
Publisher objects not dispatching accessDenied events in Firefox 49.0.1. We have
fixed this issue.
Screen sharing videos are blurry in the OpenTok Plugin for Internet Explorer.
We have fixed this issue.
Publishers and subscribers in Chrome incorrectly displaying a "possible network or firewall issue" message. We have fixed this issue.
The getImgData() method of Subscriber and Publisher objects returns an image with
the incorrect resolution in the OpenTok Plugin for Internet Explorer. We have fixed
this issue.
Unable to publish in Firefox 42 or lower. We have fixed this issue.
Publishing does not work in Chrome Canary version 57.
We have fixed this issue.
Fixed in OpenTok.js 2.9.4
Publishing does not work in Chrome Canary version 57.
We have fixed this issue.
Fixed in OpenTok.js 2.9.3
In Chrome 54, clicking the "Stop Sharing" button for a
screen-sharing stream does not result in the stream being destroyed.
We have fixed this issue.
Fixed in OpenTok.js 2.9.2
Muting a publisher's audio immediately after connecting does
not work. We have fixed this issue.
Automatic reconnection of subscribers causes the OpenTok plugin
for Internet Explorer to crash. We have fixed this issue.
Fixed in OpenTok.js 2.9.1
Publisher video resolution settings not working in
Chrome 53. We have fixed this issue.
Fixed in OpenTok.js 2.9.0
Publisher video disappears. The Publisher video could
disappear when editing text nodes on the page (for example, when using a localization
library, such as localize.js). We have fixed this issue.
Audio activity indicator issues. The audio indicator was not being displayed
in subscribers to and publishers of audio-only streams. Also, the audio indicator
was being displayed for streams that are muted. We have fixed these issues.
The values returned by the Publisher.getImgData() and Subscriber.getImgData() methods
were incorrect in the OpenTok Plugin. We have fixed this issue.
Screen-sharing was limited to 1280 by 720 pixels in the OpenTok Plugin. However,
OpenTok supports screen-sharing streams up to as 1920 by 1920 pixels in size. We have fixed
this issue.
OT.checkSystemRequirements() incorrectly returns 1 for old, unsupported browser
versions. We have fixed this issue.
Incorrect "InvalidStateError: Peer connection is closed" error. This error was
incorrectly being logged for Subscribers in new beta versions of Firefox. We have fixed
this issue.
Fixed in OpenTok.js 2.8.4
Publishing does not work in Chrome Canary version 57.
We have fixed this issue.
Firefox would crash when sending and receiving streams to
a client using the OpenTok plugin for Internet Explorer. Mozilla has fixed
this Firefox bug.
Fixed in OpenTok.js 2.8.3
Publisher video resolution settings not working in
Chrome 53. We have fixed this issue.
Fixed in OpenTok.js 2.8.2
Subscriber streams dropped and incorrect error
messages indicating firewall issues. We have fixed an issue in which
subscriber streams would be dropped, leading to these inaccurate error
messages.
Fixed in OpenTok.js 2.8
64-bit support in Internet
Explorer. The OpenTok Plugin for Internet Explorer now supports
64-bit mode.
Fixed in OpenTok.js 2.7.5
Issue in publishing streams in Chrome 50. We have fixed this issue.
Fixed in OpenTok.js 2.7.2
Publisher accessDenied event not working in Firefox 44. We have fixed this issue.
Error when subscribing to the same stream multiple times. We have fixed this issue.
Fixed in OpenTok.js 2.7.1
Subscribing to you own stream (using the testNetwork option in the Session.subscribe()
method) is not working in Chrome. We have fixed this issue.
global.jasmine property set. The OpenTok.js library was incorrectly adding this
property. We have fixed this issue.
Error logged in console: "More than one module is trying to define on on OTHelpers."
We have fixed this issue.
Fixed in OpenTok.js 2.7.0
audioLevelUpdated events are not dispatched by the Publisher in Internet Explorer.
We have fixed this issue.
OT.initPublisher() fails if the Allow Device Access dialog box is open for another
Publisher. This problem occured in Firefox and Internet Explorer. We have fixed this issue.
videoDisabledDisplayMode style working incorrectly. This is an optional property you
pass into the style
property of the Session.subscribe()
options
parameter or using the Subscriber.setStyle()
method. We have
fixed this issue.
Unable to publish or subscribe in Firefox 43+. This is due to a change in the
WebRTC API implemented in Firefox. We have fixed this issue.
Unable to initialize two publishers synchronously in Firefox and Internet Explorer.
In Firefox and the OpenTok Plugin for Internet Explorer, while the user is being prompted
to grant a publisher access to the camera and microphone, you could not initialize another publisher.
We have fixed this issue.
Added support for screen sharing in Internet Explorer.
Fixed in OpenTok.js 2.6.7
Issues with Firefox–Internet Explorer streaming.
This release fixes issues with streams transmitted between
clients using the OpenTok Plugin for Internet Explorer and Firefox
version 42.
Fixed in OpenTok.js 2.6.1
OT.getDevices() returning device with the kind property set
to an incorrect value. The property is set to 'audioinput' and
'videoinput' instead of 'audioInput' and 'videoInput'. We have fixed
this issue.
Error running in Internet Explorer 11: Unable to get property
'split' of undefined or null reference. We have fixed this
issue.
Fixed in OpenTok.js 2.6.0
Cannot read property 'videoWidth' of null Error. See
this
post to the OpenTok forums. We have fixed this issue.
The OpenTok plugin for Internet Explorer supports adding no more than two
Subscribers to the page. We have fixed this issue.
Fixed in OpenTok.js 2.5
Publishing audio-only streams can result in errors: "cannot read property addEventListener of null" and
"cannot read property videoWidth of null." We have fixed this issue.
Publisher and Subscriber videos don't resize properly if their aspect ratios change.
We have fixed this issue.
Some errors in Session.publish() completion handler not resulting in the OT object dispatching an exception
event. We have fixed this issue.
Some errors in publishing do not result in errors in the Session.publish() completion handler.
We have fixed this issue.
Extra "no element found" errors logged in the web console in Firefox. We have fixed this issue.
Fixed in OpenTok.js 2.4.1
A publisher or subscriber element is not resized when the container element resizes (programmatically
or due to CSS changes). We have fixed this issue.
The audio-only background image is not displayed in voice-only publishers and subscribers.
We have fixed this issue.
Unable to publish on an HTTP page using the OpenTok Plugin for Internet Explorer.
We have fixed this issue.
CSS layout issues in the installer for the OpenTok Plugin for Internet Explorer.
We have fixed these issues.
Fixed in OpenTok.js 2.4.0
Non-responsive dialog boxes in the OpenTok Plugin for Internet Explorer. The
installation and update dialog boxes are now responsive, resizing appropriately based
on the browser window's dimensions.
Unsupported methods in the OpenTok Plugin for Internet Explorer. The following
methods now work: Subscriber.setAudioVolume()
and
Subscriber.getAudioVolume()
. Also, the audioLevelUpdated
event is now dispatched by Subscriber and Publisher objects in the OpenTok Plugin for
Internet Explorer.
Cannot reconnect to a session without reloading the page. We have fixed this issue.
Audio level meter displayed when it should not be. The publisher and subscriber audio meter
was being used even if the client is using video (not audio-only). We have fixed this issue.
Uncaught error when calling Subscriber.subscribeToAudio(). The uncaught error was "Uncaught
TypeError: Cannot read property 'id' of null." We have fixed this issue.
Multiple console warnings for "Style.setAll::Invalid style property passed
videoDisabledIndicatorDisplayMode : auto." We have fixed this issue.
Fixed in OpenTok.js 2.2.9
The installer and updater for the OpenTok plugin are broken in Internet Explorer
9. We have fixed this issue.
Interoperation issues between the OpenTok plugin for Internet Explorer and both the
OpenTok Android SDK and the OpenTok iOS SDK. We have fixed this issue.
The streamCreated event sometimes fires before the connectionCreated
event for the client publishing the stream. We have fixed this issue.
Unexpected error when reconnecting and subscribing multiple times in Chrome. The full
error message was "Uncaught SyntaxError: Failed to construct 'AudioContext': number of
hardware contexts reached maximum." We have fixed this issue.
Unexpected error when subscribing to a stream that has no audio. The full error
message was "Uncaught InvalidStateError: Failed to execute 'createMediaStreamSource' on
'AudioContext': MediaStream has no audio track." We have fixed this issue.
Issues with the installation and update dialog boxes for the OpenTok plugin for Internet
Explorer. We have improved these dialog boxes to work in smaller browser windows.
Unable to call Publisher.getImgData() and Subscriber.getImgData() in Internet Explorer. We have
fixed this issue.
Excessive logging to the console. The OpenTok.js library was logging unnecessary
information to the console, even when the log level was set to OT.ERROR
(see
OT.setLogLevel()). We have
fixed this issue.
In Chrome, hiding an element that contains a Publisher or Subscriber (by setting
the display CSS property to "none") causes the browser to crash. We have fixed this issue.
Fixed in OpenTok.js 2.2.7
Unable to subscribe to audio-only streams in Chrome. We have fixed this issue.
Issues loading the OpenTok.js library using JavaScript script loaders. We have
fixed this issue.
Fixed in OpenTok.js 2.2.5
Calls to OT.initSession() sometimes fail on pages loaded via HTTP (not HTTPS).
We have fixed this issue.
Fixed in OpenTok.js 2.2.3
The stream.hasVideo property was not set correctly. In Firefox, if the user
did not allow access to the camera (or if there is no camera), the hasVideo
property of the corresponding Stream object was incorrectly set to true
.
We have fixed this issue.
For information, see the
release notes for OpenTok.js 2.0.
More information
See the reference documentation for
the OpenTok.js library.
To see sample code and to read more information on using the OpenTok.js library,
see the OpenTok Tutorials and Examples page.
For documentation on the OpenTok server-side libraries, see the
OpenTok server-side libraries page.
Also check out the OpenTok Help Center.
How to report bugs
We'd love to hear from you! If you have any issues or bugs, you can report them to
us at our support page.