Suggestions

close search

Release notes for the OpenTok.js library

API referenceTutorials

Welcome to version 2.14 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 Firefox 52, an extension (or whitelist listing) is no longer needed for screen sharing. Firefox prompts the end user for access to a screen, window, or application, as it would for access to the camera. For more information, see this Mozilla blog post. (Screen sharing is supported in Chrome with a plug in. It is also supported in the OpenTok plug-in for Internet Explorer.) To support screen sharing Chrome or in older versions of Firefox, see the OpenTok screensharing-extensions repo on GitHub.

New Features in OpenTok.js 2.14

New Features in OpenTok.js 2.14.7

This release fixes some issues — see the list of fixed issues.

New Features in OpenTok.js 2.14.6

This release fixes an issue in Chrome on Android — see the list of fixed issues.

New Features in OpenTok.js 2.14.3

This release fixes a few known issues — see the list of fixed issues.

New Features in OpenTok.js 2.14.2

This release fixes a few known issues — see the list of fixed issues.

New Features in OpenTok.js 2.14.1

This release fixes a known issue in Chrome 64. See the list of fixed issues.

New Features in OpenTok.js 2.14.0

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.

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.14

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 tTypeScript 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 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.