Suggestions

close search

Add Messaging, Voice, and Authentication to your apps with Nexmo APIs

Visit Nexmo

Release notes for the OpenTok.js library

Welcome to version 2.15 of the OpenTok.js library.

If you have any questions, TokBox 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

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.

As of Chrome 72, 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 and Firefox, you no longer need to deploy a screen-sharing extension.

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.

IP white list setting for enterprise partners. Enterprise partners that have IP white listing 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.

Features added in previous versions

Show details.

Requirements

The OpenTok.js library is currently supported in:

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:

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.

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.

Fixed in OpenTok.js 2.15

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 previous versions

Show details.

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 support@tokbox.com.