From 91e874770369c42e3d782345c518d03783ffbb81 Mon Sep 17 00:00:00 2001 From: Manjesh Malavalli Date: Mon, 25 Sep 2023 11:46:16 -0500 Subject: [PATCH 1/4] VIDEO-13006 iOS 17 Chrome: disable Krisp upon foregrounding (#2026) * On iOS Chrome, use source track if restarted Krisp track is silent. --- CHANGELOG.md | 9 +++++++++ lib/media/track/localaudiotrack.js | 28 +++++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ff017c244..6f2158d4f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,15 @@ The Twilio Programmable Video SDKs use [Semantic Versioning](http://www.semver.o **Version 1.x reached End of Life on September 8th, 2021.** See the changelog entry [here](https://www.twilio.com/changelog/end-of-life-complete-for-unsupported-versions-of-the-programmable-video-sdk). Support for the 1.x version ended on December 4th, 2020. +2.28.1 (in progress) +==================== + +Bug Fixes +--------- + +- Previously, a Chrome iOS 17 Participant's local audio (Krisp noise cancellation enabled) did not recover after foregrounding the browser following the playing of a YouTube video (or some other application which requires microphone permissions). We work around this by permanently disabling +the Krisp noise cancellation upon foregrounding the browser. (VIDEO-13006) + 2.28.0 (September 14, 2023) =========================== diff --git a/lib/media/track/localaudiotrack.js b/lib/media/track/localaudiotrack.js index 7e4ac3d7a..5c85b0427 100644 --- a/lib/media/track/localaudiotrack.js +++ b/lib/media/track/localaudiotrack.js @@ -1,6 +1,8 @@ 'use strict'; const { isIOS } = require('../../util/browserdetection'); +const detectSilentAudio = require('../../util/detectsilentaudio'); +const { isIOSChrome } = require('../../webrtc/util'); const AudioTrack = require('./audiotrack'); const mixinLocalMediaTrack = require('./localmediatrack'); @@ -162,7 +164,7 @@ class LocalAudioTrack extends LocalMediaAudioTrack { /** * @private */ - _reacquireTrack(constraints) { + _reacquireTrack(constraints) { this._log.debug('_reacquireTrack: ', constraints); if (this.noiseCancellation) { return this.noiseCancellation.reacquireTrack(() => { @@ -188,6 +190,30 @@ class LocalAudioTrack extends LocalMediaAudioTrack { }); } + /** + * NOTE(mmalavalli): On iOS 17 Chrome, a LocalAudioTrack with Krisp Noise Cancellation + * enabled that is restarted due to foregrounding the browser is silent for as-of-yet + * unknown reason. We work around this by discarding the Krisp MediaStreamTrack and using + * the source MediaStreamTrack. (VIDEO-13006) + * @private + */ + _setMediaStreamTrack(mediaStreamTrack) { + const { _log: log, noiseCancellation } = this; + let promise = super._setMediaStreamTrack.call(this, mediaStreamTrack); + + if (isIOSChrome() && !!noiseCancellation) { + log.debug('iOS Chrome detected, checking if the restarted Krisp audio is silent'); + promise = promise.then(() => detectSilentAudio(this._dummyEl)).then(isSilent => { + log.debug(`Krisp audio is ${isSilent ? 'silent, using source audio' : 'not silent'}`); + return isSilent && noiseCancellation.disablePermanently().then(() => { + return super._setMediaStreamTrack.call(this, noiseCancellation.sourceTrack); + }); + }); + } + + return promise; + } + /** * Disable the {@link LocalAudioTrack}. This is equivalent to muting the audio source. * @returns {this} From 16cfc8ac529a868547466f6c7c73f03b2906f832 Mon Sep 17 00:00:00 2001 From: twilio-ci Date: Mon, 25 Sep 2023 17:32:12 +0000 Subject: [PATCH 2/4] 2.28.1-rc1 --- dist/docs/AccessTokenExpiredError.html | 541 + dist/docs/AccessTokenGrantsInvalidError.html | 541 + dist/docs/AccessTokenHeaderInvalidError.html | 541 + dist/docs/AccessTokenInvalidError.html | 541 + dist/docs/AccessTokenIssuerInvalidError.html | 541 + dist/docs/AccessTokenNotYetValidError.html | 541 + .../AccessTokenSignatureInvalidError.html | 541 + dist/docs/AudioTrack.html | 1845 + .../docs/ConfigurationAcquireFailedError.html | 541 + .../ConfigurationAcquireTurnFailedError.html | 541 + dist/docs/LocalAudioTrack.html | 2364 ++ dist/docs/LocalAudioTrackPublication.html | 1159 + dist/docs/LocalAudioTrackStats.html | 454 + dist/docs/LocalDataTrack.html | 837 + dist/docs/LocalDataTrackPublication.html | 1159 + dist/docs/LocalParticipant.html | 3666 ++ dist/docs/LocalTrackPublication.html | 1159 + dist/docs/LocalTrackStats.html | 486 + dist/docs/LocalVideoTrack.html | 2852 ++ dist/docs/LocalVideoTrackPublication.html | 1159 + dist/docs/LocalVideoTrackStats.html | 518 + .../docs/MediaClientLocalDescFailedError.html | 541 + .../MediaClientRemoteDescFailedError.html | 541 + dist/docs/MediaConnectionError.html | 541 + dist/docs/MediaDTLSTransportFailedError.html | 541 + dist/docs/MediaNoSupportedCodecError.html | 541 + .../docs/MediaServerLocalDescFailedError.html | 541 + .../MediaServerRemoteDescFailedError.html | 541 + dist/docs/NetworkQualityAudioStats.html | 350 + dist/docs/NetworkQualityBandwidthStats.html | 477 + .../docs/NetworkQualityFractionLostStats.html | 445 + dist/docs/NetworkQualityLatencyStats.html | 477 + dist/docs/NetworkQualityMediaStats.html | 511 + dist/docs/NetworkQualityRecvStats.html | 351 + dist/docs/NetworkQualitySendOrRecvStats.html | 480 + dist/docs/NetworkQualitySendStats.html | 351 + dist/docs/NetworkQualityStats.html | 479 + dist/docs/NetworkQualityVideoStats.html | 350 + dist/docs/NoiseCancellation.html | 820 + dist/docs/Participant.html | 1547 + .../ParticipantDuplicateIdentityError.html | 541 + .../ParticipantIdentityCharsInvalidError.html | 541 + .../docs/ParticipantIdentityInvalidError.html | 541 + .../docs/ParticipantIdentityTooLongError.html | 541 + .../ParticipantMaxTracksExceededError.html | 541 + dist/docs/ParticipantNotFoundError.html | 541 + dist/docs/PreflightTest.html | 871 + dist/docs/RemoteAudioTrack.html | 1627 + dist/docs/RemoteAudioTrackPublication.html | 1003 + dist/docs/RemoteAudioTrackStats.html | 454 + dist/docs/RemoteDataTrack.html | 1318 + dist/docs/RemoteDataTrackPublication.html | 843 + dist/docs/RemoteParticipant.html | 2898 ++ dist/docs/RemoteTrackPublication.html | 1510 + dist/docs/RemoteTrackStats.html | 448 + dist/docs/RemoteVideoTrack.html | 2514 ++ dist/docs/RemoteVideoTrackPublication.html | 1003 + dist/docs/RemoteVideoTrackStats.html | 454 + dist/docs/Room.html | 4932 +++ .../RoomAudioOnlyFlagNotSupportedError.html | 541 + dist/docs/RoomCompletedError.html | 541 + dist/docs/RoomConnectFailedError.html | 541 + dist/docs/RoomCreateFailedError.html | 541 + dist/docs/RoomInvalidParametersError.html | 541 + .../RoomMaxParticipantsExceededError.html | 541 + .../RoomMaxParticipantsOutOfRangeError.html | 541 + dist/docs/RoomMediaRegionInvalidError.html | 541 + .../docs/RoomMediaRegionUnavailableError.html | 541 + dist/docs/RoomNameCharsInvalidError.html | 541 + dist/docs/RoomNameInvalidError.html | 541 + dist/docs/RoomNameTooLongError.html | 541 + dist/docs/RoomNotFoundError.html | 541 + dist/docs/RoomRoomExistsError.html | 541 + dist/docs/RoomStatusCallbackInvalidError.html | 541 + .../RoomStatusCallbackMethodInvalidError.html | 541 + dist/docs/RoomStatusInvalidError.html | 541 + ...ubscriptionOperationNotSupportedError.html | 541 + dist/docs/RoomTimeoutOutOfRangeError.html | 541 + dist/docs/RoomTrackKindNotSupportedError.html | 541 + dist/docs/RoomTypeInvalidError.html | 541 + .../SignalingConnectionDisconnectedError.html | 541 + dist/docs/SignalingConnectionError.html | 541 + .../docs/SignalingConnectionTimeoutError.html | 541 + .../SignalingIncomingMessageInvalidError.html | 541 + .../SignalingOutgoingMessageInvalidError.html | 541 + dist/docs/SignalingServerBusyError.html | 541 + dist/docs/StatsReport.html | 497 + dist/docs/Track.html | 727 + dist/docs/TrackInvalidError.html | 541 + dist/docs/TrackNameCharsInvalidError.html | 541 + dist/docs/TrackNameInvalidError.html | 541 + dist/docs/TrackNameIsDuplicatedError.html | 541 + dist/docs/TrackNameTooLongError.html | 541 + dist/docs/TrackPublication.html | 595 + .../TrackServerTrackCapacityReachedError.html | 541 + dist/docs/TrackStats.html | 567 + dist/docs/TwilioError.html | 514 + dist/docs/VideoTrack.html | 2591 ++ dist/docs/classes.list.html | 18513 ++++++++++ .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes .../fonts/glyphicons-halflings-regular.svg | 288 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes dist/docs/global.html | 11621 ++++++ dist/docs/img/glyphicons-halflings-white.png | Bin 0 -> 8777 bytes dist/docs/img/glyphicons-halflings.png | Bin 0 -> 12799 bytes dist/docs/index.html | 471 + dist/docs/interfaces.list.html | 18513 ++++++++++ dist/docs/module-twilio-video.html | 1557 + dist/docs/modules.list.html | 18513 ++++++++++ dist/docs/quicksearch.html | 31 + dist/docs/scripts/docstrap.lib.js | 11 + dist/docs/scripts/fulltext-search-ui.js | 89 + dist/docs/scripts/fulltext-search.js | 36 + dist/docs/scripts/lunr.min.js | 6 + .../scripts/prettify/Apache-License-2.0.txt | 202 + dist/docs/scripts/prettify/jquery.min.js | 6 + dist/docs/scripts/prettify/lang-css.js | 21 + dist/docs/scripts/prettify/prettify.js | 496 + dist/docs/scripts/sunlight.js | 1157 + dist/docs/scripts/toc.js | 203 + dist/docs/styles/darkstrap.css | 960 + dist/docs/styles/prettify-tomorrow.css | 132 + dist/docs/styles/site.cerulean.css | 7008 ++++ dist/docs/styles/site.cosmo.css | 7061 ++++ dist/docs/styles/site.cyborg.css | 7048 ++++ dist/docs/styles/site.darkly.css | 7171 ++++ dist/docs/styles/site.darkstrap.css | 5638 +++ dist/docs/styles/site.dibs-bootstrap.css | 5899 +++ dist/docs/styles/site.flatly.css | 7147 ++++ dist/docs/styles/site.journal.css | 6973 ++++ dist/docs/styles/site.lumen.css | 7298 ++++ dist/docs/styles/site.paper.css | 7623 ++++ dist/docs/styles/site.readable.css | 6997 ++++ dist/docs/styles/site.sandstone.css | 7035 ++++ dist/docs/styles/site.simplex.css | 7023 ++++ dist/docs/styles/site.slate.css | 7343 ++++ dist/docs/styles/site.spacelab.css | 7055 ++++ dist/docs/styles/site.superhero.css | 7131 ++++ dist/docs/styles/site.united.css | 6895 ++++ dist/docs/styles/site.yeti.css | 7195 ++++ dist/docs/styles/sunlight.dark.css | 345 + dist/docs/styles/sunlight.default.css | 344 + dist/twilio-video.js | 30347 ++++++++++++++++ dist/twilio-video.min.js | 57 + es5/cancelableroompromise.js | 45 + es5/cancelableroompromise.js.map | 1 + es5/connect.js | 920 + es5/connect.js.map | 1 + es5/createlocaltrack.js | 148 + es5/createlocaltrack.js.map | 1 + es5/createlocaltracks.js | 257 + es5/createlocaltracks.js.map | 1 + es5/data/receiver.js | 73 + es5/data/receiver.js.map | 1 + es5/data/sender.js | 124 + es5/data/sender.js.map | 1 + es5/data/transceiver.js | 59 + es5/data/transceiver.js.map | 1 + es5/data/transport.js | 96 + es5/data/transport.js.map | 1 + es5/encodingparameters.js | 97 + es5/encodingparameters.js.map | 1 + es5/eventemitter.js | 5 + es5/eventemitter.js.map | 1 + es5/eventtarget.js | 46 + es5/eventtarget.js.map | 1 + es5/index.js | 73 + es5/index.js.map | 1 + es5/localparticipant.js | 713 + es5/localparticipant.js.map | 1 + es5/media/track/audiotrack.js | 154 + es5/media/track/audiotrack.js.map | 1 + es5/media/track/es5/index.js | 7 + es5/media/track/es5/index.js.map | 1 + es5/media/track/es5/localaudiotrack.js | 14 + es5/media/track/es5/localaudiotrack.js.map | 1 + es5/media/track/es5/localdatatrack.js | 14 + es5/media/track/es5/localdatatrack.js.map | 1 + es5/media/track/es5/localvideotrack.js | 14 + es5/media/track/es5/localvideotrack.js.map | 1 + es5/media/track/index.js | 111 + es5/media/track/index.js.map | 1 + es5/media/track/localaudiotrack.js | 342 + es5/media/track/localaudiotrack.js.map | 1 + es5/media/track/localaudiotrackpublication.js | 45 + .../track/localaudiotrackpublication.js.map | 1 + es5/media/track/localdatatrack.js | 137 + es5/media/track/localdatatrack.js.map | 1 + es5/media/track/localdatatrackpublication.js | 45 + .../track/localdatatrackpublication.js.map | 1 + es5/media/track/localmediatrack.js | 395 + es5/media/track/localmediatrack.js.map | 1 + es5/media/track/localtrackpublication.js | 165 + es5/media/track/localtrackpublication.js.map | 1 + es5/media/track/localvideotrack.js | 366 + es5/media/track/localvideotrack.js.map | 1 + es5/media/track/localvideotrackpublication.js | 45 + .../track/localvideotrackpublication.js.map | 1 + es5/media/track/mediatrack.js | 363 + es5/media/track/mediatrack.js.map | 1 + es5/media/track/noisecancellationimpl.js | 228 + es5/media/track/noisecancellationimpl.js.map | 1 + es5/media/track/receiver.js | 35 + es5/media/track/receiver.js.map | 1 + es5/media/track/remoteaudiotrack.js | 108 + es5/media/track/remoteaudiotrack.js.map | 1 + .../track/remoteaudiotrackpublication.js | 71 + .../track/remoteaudiotrackpublication.js.map | 1 + es5/media/track/remotedatatrack.js | 186 + es5/media/track/remotedatatrack.js.map | 1 + es5/media/track/remotedatatrackpublication.js | 61 + .../track/remotedatatrackpublication.js.map | 1 + es5/media/track/remotemediatrack.js | 285 + es5/media/track/remotemediatrack.js.map | 1 + es5/media/track/remotetrackpublication.js | 194 + es5/media/track/remotetrackpublication.js.map | 1 + es5/media/track/remotevideotrack.js | 433 + es5/media/track/remotevideotrack.js.map | 1 + .../track/remotevideotrackpublication.js | 71 + .../track/remotevideotrackpublication.js.map | 1 + es5/media/track/sender.js | 186 + es5/media/track/sender.js.map | 1 + es5/media/track/trackpublication.js | 96 + es5/media/track/trackpublication.js.map | 1 + es5/media/track/transceiver.js | 66 + es5/media/track/transceiver.js.map | 1 + .../track/videoprocessoreventobserver.js | 154 + .../track/videoprocessoreventobserver.js.map | 1 + es5/media/track/videotrack.js | 580 + es5/media/track/videotrack.js.map | 1 + es5/networkqualityconfiguration.js | 98 + es5/networkqualityconfiguration.js.map | 1 + es5/noisecancellationadapter.js | 154 + es5/noisecancellationadapter.js.map | 1 + es5/participant.js | 616 + es5/participant.js.map | 1 + es5/preflight/getCombinedConnectionStats.js | 153 + .../getCombinedConnectionStats.js.map | 1 + es5/preflight/getturncredentials.js | 47 + es5/preflight/getturncredentials.js.map | 1 + es5/preflight/makestat.js | 40 + es5/preflight/makestat.js.map | 1 + es5/preflight/mos.js | 60 + es5/preflight/mos.js.map | 1 + es5/preflight/preflighttest.js | 643 + es5/preflight/preflighttest.js.map | 1 + es5/preflight/rtctypes.js | 3 + es5/preflight/rtctypes.js.map | 1 + es5/preflight/syntheticaudio.js | 22 + es5/preflight/syntheticaudio.js.map | 1 + es5/preflight/syntheticvideo.js | 33 + es5/preflight/syntheticvideo.js.map | 1 + es5/preflight/timer.js | 29 + es5/preflight/timer.js.map | 1 + es5/queueingeventemitter.js | 100 + es5/queueingeventemitter.js.map | 1 + es5/remoteparticipant.js | 280 + es5/remoteparticipant.js.map | 1 + es5/room.js | 675 + es5/room.js.map | 1 + es5/signaling/index.js | 169 + es5/signaling/index.js.map | 1 + es5/signaling/localparticipant.js | 81 + es5/signaling/localparticipant.js.map | 1 + es5/signaling/localtrackpublication.js | 130 + es5/signaling/localtrackpublication.js.map | 1 + es5/signaling/participant.js | 224 + es5/signaling/participant.js.map | 1 + es5/signaling/recording.js | 72 + es5/signaling/recording.js.map | 1 + es5/signaling/remoteparticipant.js | 39 + es5/signaling/remoteparticipant.js.map | 1 + es5/signaling/remotetrackpublication.js | 104 + es5/signaling/remotetrackpublication.js.map | 1 + es5/signaling/room.js | 280 + es5/signaling/room.js.map | 1 + es5/signaling/track.js | 182 + es5/signaling/track.js.map | 1 + .../v2/cancelableroomsignalingpromise.js | 116 + .../v2/cancelableroomsignalingpromise.js.map | 1 + es5/signaling/v2/dominantspeakersignaling.js | 77 + .../v2/dominantspeakersignaling.js.map | 1 + es5/signaling/v2/icebox.js | 67 + es5/signaling/v2/icebox.js.map | 1 + es5/signaling/v2/iceconnectionmonitor.js | 132 + es5/signaling/v2/iceconnectionmonitor.js.map | 1 + es5/signaling/v2/index.js | 64 + es5/signaling/v2/index.js.map | 1 + es5/signaling/v2/localparticipant.js | 339 + es5/signaling/v2/localparticipant.js.map | 1 + es5/signaling/v2/localtrackpublication.js | 126 + es5/signaling/v2/localtrackpublication.js.map | 1 + es5/signaling/v2/mediasignaling.js | 96 + es5/signaling/v2/mediasignaling.js.map | 1 + es5/signaling/v2/networkqualitymonitor.js | 158 + es5/signaling/v2/networkqualitymonitor.js.map | 1 + es5/signaling/v2/networkqualitysignaling.js | 264 + .../v2/networkqualitysignaling.js.map | 1 + es5/signaling/v2/peerconnection.js | 1859 + es5/signaling/v2/peerconnection.js.map | 1 + es5/signaling/v2/peerconnectionmanager.js | 567 + es5/signaling/v2/peerconnectionmanager.js.map | 1 + es5/signaling/v2/publisherhintsignaling.js | 85 + .../v2/publisherhintsignaling.js.map | 1 + es5/signaling/v2/recording.js | 59 + es5/signaling/v2/recording.js.map | 1 + es5/signaling/v2/remoteparticipant.js | 119 + es5/signaling/v2/remoteparticipant.js.map | 1 + es5/signaling/v2/remotetrackpublication.js | 53 + .../v2/remotetrackpublication.js.map | 1 + es5/signaling/v2/renderhintssignaling.js | 150 + es5/signaling/v2/renderhintssignaling.js.map | 1 + es5/signaling/v2/room.js | 857 + es5/signaling/v2/room.js.map | 1 + es5/signaling/v2/trackprioritysignaling.js | 65 + .../v2/trackprioritysignaling.js.map | 1 + es5/signaling/v2/trackswitchoffsignaling.js | 57 + .../v2/trackswitchoffsignaling.js.map | 1 + es5/signaling/v2/twilioconnectiontransport.js | 586 + .../v2/twilioconnectiontransport.js.map | 1 + es5/statemachine.js | 445 + es5/statemachine.js.map | 1 + es5/stats/average.js | 12 + es5/stats/average.js.map | 1 + es5/stats/icereport.js | 57 + es5/stats/icereport.js.map | 1 + es5/stats/icereportfactory.js | 44 + es5/stats/icereportfactory.js.map | 1 + es5/stats/localaudiotrackstats.js | 57 + es5/stats/localaudiotrackstats.js.map | 1 + es5/stats/localtrackstats.js | 59 + es5/stats/localtrackstats.js.map | 1 + es5/stats/localvideotrackstats.js | 92 + es5/stats/localvideotrackstats.js.map | 1 + es5/stats/networkqualityaudiostats.js | 33 + es5/stats/networkqualityaudiostats.js.map | 1 + es5/stats/networkqualitybandwidthstats.js | 33 + es5/stats/networkqualitybandwidthstats.js.map | 1 + es5/stats/networkqualityfractionloststats.js | 28 + .../networkqualityfractionloststats.js.map | 1 + es5/stats/networkqualitylatencystats.js | 33 + es5/stats/networkqualitylatencystats.js.map | 1 + es5/stats/networkqualitymediastats.js | 46 + es5/stats/networkqualitymediastats.js.map | 1 + es5/stats/networkqualityrecvstats.js | 34 + es5/stats/networkqualityrecvstats.js.map | 1 + es5/stats/networkqualitysendorrecvstats.js | 39 + .../networkqualitysendorrecvstats.js.map | 1 + es5/stats/networkqualitysendstats.js | 34 + es5/stats/networkqualitysendstats.js.map | 1 + es5/stats/networkqualitystats.js | 39 + es5/stats/networkqualitystats.js.map | 1 + es5/stats/networkqualityvideostats.js | 33 + es5/stats/networkqualityvideostats.js.map | 1 + es5/stats/peerconnectionreport.js | 77 + es5/stats/peerconnectionreport.js.map | 1 + es5/stats/peerconnectionreportfactory.js | 429 + es5/stats/peerconnectionreportfactory.js.map | 1 + es5/stats/receiverreport.js | 125 + es5/stats/receiverreport.js.map | 1 + es5/stats/receiverreportfactory.js | 58 + es5/stats/receiverreportfactory.js.map | 1 + es5/stats/remoteaudiotrackstats.js | 51 + es5/stats/remoteaudiotrackstats.js.map | 1 + es5/stats/remotetrackstats.js | 51 + es5/stats/remotetrackstats.js.map | 1 + es5/stats/remotevideotrackstats.js | 64 + es5/stats/remotevideotrackstats.js.map | 1 + es5/stats/senderorreceiverreport.js | 33 + es5/stats/senderorreceiverreport.js.map | 1 + es5/stats/senderorreceiverreportfactory.js | 35 + .../senderorreceiverreportfactory.js.map | 1 + es5/stats/senderreport.js | 87 + es5/stats/senderreport.js.map | 1 + es5/stats/senderreportfactory.js | 58 + es5/stats/senderreportfactory.js.map | 1 + es5/stats/statsreport.js | 50 + es5/stats/statsreport.js.map | 1 + es5/stats/sum.js | 10 + es5/stats/sum.js.map | 1 + es5/stats/trackstats.js | 58 + es5/stats/trackstats.js.map | 1 + es5/transceiver.js | 61 + es5/transceiver.js.map | 1 + es5/twilioconnection.js | 655 + es5/twilioconnection.js.map | 1 + es5/util/asyncvar.js | 64 + es5/util/asyncvar.js.map | 1 + es5/util/backoff.js | 83 + es5/util/backoff.js.map | 1 + es5/util/browserdetection.js | 157 + es5/util/browserdetection.js.map | 1 + es5/util/cancelablepromise.js | 142 + es5/util/cancelablepromise.js.map | 1 + es5/util/constants.js | 101 + es5/util/constants.js.map | 1 + es5/util/detectsilentaudio.js | 40 + es5/util/detectsilentaudio.js.map | 1 + es5/util/detectsilentvideo.js | 58 + es5/util/detectsilentvideo.js.map | 1 + es5/util/documentvisibilitymonitor.js | 121 + es5/util/documentvisibilitymonitor.js.map | 1 + es5/util/dynamicimport.js | 22 + es5/util/dynamicimport.js.map | 1 + es5/util/eventobserver.js | 97 + es5/util/eventobserver.js.map | 1 + es5/util/filter.js | 43 + es5/util/filter.js.map | 1 + es5/util/index.js | 885 + es5/util/index.js.map | 1 + es5/util/insightspublisher/index.js | 294 + es5/util/insightspublisher/index.js.map | 1 + es5/util/insightspublisher/null.js | 44 + es5/util/insightspublisher/null.js.map | 1 + es5/util/localmediarestartdeferreds.js | 61 + es5/util/localmediarestartdeferreds.js.map | 1 + es5/util/log.js | 286 + es5/util/log.js.map | 1 + es5/util/movingaveragedelta.js | 46 + es5/util/movingaveragedelta.js.map | 1 + es5/util/networkmonitor.js | 88 + es5/util/networkmonitor.js.map | 1 + es5/util/nullobserver.js | 62 + es5/util/nullobserver.js.map | 1 + es5/util/sdp/index.js | 537 + es5/util/sdp/index.js.map | 1 + es5/util/sdp/issue8329.js | 192 + es5/util/sdp/issue8329.js.map | 1 + es5/util/sdp/simulcast.js | 262 + es5/util/sdp/simulcast.js.map | 1 + es5/util/sdp/trackmatcher.js | 44 + es5/util/sdp/trackmatcher.js.map | 1 + es5/util/sid.js | 18 + es5/util/sid.js.map | 1 + es5/util/support.js | 46 + es5/util/support.js.map | 1 + es5/util/timeout.js | 94 + es5/util/timeout.js.map | 1 + es5/util/timeoutpromise.js | 163 + es5/util/timeoutpromise.js.map | 1 + es5/util/twilio-video-errors.js | 1023 + es5/util/twilio-video-errors.js.map | 1 + es5/util/twilioerror.js | 81 + es5/util/twilioerror.js.map | 1 + es5/util/twiliowarning.js | 12 + es5/util/twiliowarning.js.map | 1 + es5/util/validate.js | 116 + es5/util/validate.js.map | 1 + es5/vendor/inherits.js | 34 + es5/vendor/inherits.js.map | 1 + es5/vendor/loglevel.js | 239 + es5/vendor/loglevel.js.map | 1 + es5/webaudio/audiocontext.js | 82 + es5/webaudio/audiocontext.js.map | 1 + es5/webaudio/detectsilence.js | 52 + es5/webaudio/detectsilence.js.map | 1 + es5/webaudio/workaround180748.js | 69 + es5/webaudio/workaround180748.js.map | 1 + es5/webrtc/getstats.js | 815 + es5/webrtc/getstats.js.map | 1 + es5/webrtc/getusermedia.js | 23 + es5/webrtc/getusermedia.js.map | 1 + es5/webrtc/index.js | 34 + es5/webrtc/index.js.map | 1 + es5/webrtc/mediastream.js | 11 + es5/webrtc/mediastream.js.map | 1 + es5/webrtc/mediastreamtrack.js | 11 + es5/webrtc/mediastreamtrack.js.map | 1 + es5/webrtc/rtcicecandidate.js | 11 + es5/webrtc/rtcicecandidate.js.map | 1 + es5/webrtc/rtcpeerconnection/chrome.js | 563 + es5/webrtc/rtcpeerconnection/chrome.js.map | 1 + es5/webrtc/rtcpeerconnection/firefox.js | 326 + es5/webrtc/rtcpeerconnection/firefox.js.map | 1 + es5/webrtc/rtcpeerconnection/index.js | 24 + es5/webrtc/rtcpeerconnection/index.js.map | 1 + es5/webrtc/rtcpeerconnection/safari.js | 388 + es5/webrtc/rtcpeerconnection/safari.js.map | 1 + es5/webrtc/rtcrtpsender.js | 40 + es5/webrtc/rtcrtpsender.js.map | 1 + es5/webrtc/rtcsessiondescription/chrome.js | 43 + .../rtcsessiondescription/chrome.js.map | 1 + es5/webrtc/rtcsessiondescription/firefox.js | 4 + .../rtcsessiondescription/firefox.js.map | 1 + es5/webrtc/rtcsessiondescription/index.js | 22 + es5/webrtc/rtcsessiondescription/index.js.map | 1 + es5/webrtc/util/index.js | 386 + es5/webrtc/util/index.js.map | 1 + es5/webrtc/util/latch.js | 106 + es5/webrtc/util/latch.js.map | 1 + es5/webrtc/util/sdp.js | 286 + es5/webrtc/util/sdp.js.map | 1 + package.json | 2 +- 495 files changed, 338679 insertions(+), 1 deletion(-) create mode 100644 dist/docs/AccessTokenExpiredError.html create mode 100644 dist/docs/AccessTokenGrantsInvalidError.html create mode 100644 dist/docs/AccessTokenHeaderInvalidError.html create mode 100644 dist/docs/AccessTokenInvalidError.html create mode 100644 dist/docs/AccessTokenIssuerInvalidError.html create mode 100644 dist/docs/AccessTokenNotYetValidError.html create mode 100644 dist/docs/AccessTokenSignatureInvalidError.html create mode 100644 dist/docs/AudioTrack.html create mode 100644 dist/docs/ConfigurationAcquireFailedError.html create mode 100644 dist/docs/ConfigurationAcquireTurnFailedError.html create mode 100644 dist/docs/LocalAudioTrack.html create mode 100644 dist/docs/LocalAudioTrackPublication.html create mode 100644 dist/docs/LocalAudioTrackStats.html create mode 100644 dist/docs/LocalDataTrack.html create mode 100644 dist/docs/LocalDataTrackPublication.html create mode 100644 dist/docs/LocalParticipant.html create mode 100644 dist/docs/LocalTrackPublication.html create mode 100644 dist/docs/LocalTrackStats.html create mode 100644 dist/docs/LocalVideoTrack.html create mode 100644 dist/docs/LocalVideoTrackPublication.html create mode 100644 dist/docs/LocalVideoTrackStats.html create mode 100644 dist/docs/MediaClientLocalDescFailedError.html create mode 100644 dist/docs/MediaClientRemoteDescFailedError.html create mode 100644 dist/docs/MediaConnectionError.html create mode 100644 dist/docs/MediaDTLSTransportFailedError.html create mode 100644 dist/docs/MediaNoSupportedCodecError.html create mode 100644 dist/docs/MediaServerLocalDescFailedError.html create mode 100644 dist/docs/MediaServerRemoteDescFailedError.html create mode 100644 dist/docs/NetworkQualityAudioStats.html create mode 100644 dist/docs/NetworkQualityBandwidthStats.html create mode 100644 dist/docs/NetworkQualityFractionLostStats.html create mode 100644 dist/docs/NetworkQualityLatencyStats.html create mode 100644 dist/docs/NetworkQualityMediaStats.html create mode 100644 dist/docs/NetworkQualityRecvStats.html create mode 100644 dist/docs/NetworkQualitySendOrRecvStats.html create mode 100644 dist/docs/NetworkQualitySendStats.html create mode 100644 dist/docs/NetworkQualityStats.html create mode 100644 dist/docs/NetworkQualityVideoStats.html create mode 100644 dist/docs/NoiseCancellation.html create mode 100644 dist/docs/Participant.html create mode 100644 dist/docs/ParticipantDuplicateIdentityError.html create mode 100644 dist/docs/ParticipantIdentityCharsInvalidError.html create mode 100644 dist/docs/ParticipantIdentityInvalidError.html create mode 100644 dist/docs/ParticipantIdentityTooLongError.html create mode 100644 dist/docs/ParticipantMaxTracksExceededError.html create mode 100644 dist/docs/ParticipantNotFoundError.html create mode 100644 dist/docs/PreflightTest.html create mode 100644 dist/docs/RemoteAudioTrack.html create mode 100644 dist/docs/RemoteAudioTrackPublication.html create mode 100644 dist/docs/RemoteAudioTrackStats.html create mode 100644 dist/docs/RemoteDataTrack.html create mode 100644 dist/docs/RemoteDataTrackPublication.html create mode 100644 dist/docs/RemoteParticipant.html create mode 100644 dist/docs/RemoteTrackPublication.html create mode 100644 dist/docs/RemoteTrackStats.html create mode 100644 dist/docs/RemoteVideoTrack.html create mode 100644 dist/docs/RemoteVideoTrackPublication.html create mode 100644 dist/docs/RemoteVideoTrackStats.html create mode 100644 dist/docs/Room.html create mode 100644 dist/docs/RoomAudioOnlyFlagNotSupportedError.html create mode 100644 dist/docs/RoomCompletedError.html create mode 100644 dist/docs/RoomConnectFailedError.html create mode 100644 dist/docs/RoomCreateFailedError.html create mode 100644 dist/docs/RoomInvalidParametersError.html create mode 100644 dist/docs/RoomMaxParticipantsExceededError.html create mode 100644 dist/docs/RoomMaxParticipantsOutOfRangeError.html create mode 100644 dist/docs/RoomMediaRegionInvalidError.html create mode 100644 dist/docs/RoomMediaRegionUnavailableError.html create mode 100644 dist/docs/RoomNameCharsInvalidError.html create mode 100644 dist/docs/RoomNameInvalidError.html create mode 100644 dist/docs/RoomNameTooLongError.html create mode 100644 dist/docs/RoomNotFoundError.html create mode 100644 dist/docs/RoomRoomExistsError.html create mode 100644 dist/docs/RoomStatusCallbackInvalidError.html create mode 100644 dist/docs/RoomStatusCallbackMethodInvalidError.html create mode 100644 dist/docs/RoomStatusInvalidError.html create mode 100644 dist/docs/RoomSubscriptionOperationNotSupportedError.html create mode 100644 dist/docs/RoomTimeoutOutOfRangeError.html create mode 100644 dist/docs/RoomTrackKindNotSupportedError.html create mode 100644 dist/docs/RoomTypeInvalidError.html create mode 100644 dist/docs/SignalingConnectionDisconnectedError.html create mode 100644 dist/docs/SignalingConnectionError.html create mode 100644 dist/docs/SignalingConnectionTimeoutError.html create mode 100644 dist/docs/SignalingIncomingMessageInvalidError.html create mode 100644 dist/docs/SignalingOutgoingMessageInvalidError.html create mode 100644 dist/docs/SignalingServerBusyError.html create mode 100644 dist/docs/StatsReport.html create mode 100644 dist/docs/Track.html create mode 100644 dist/docs/TrackInvalidError.html create mode 100644 dist/docs/TrackNameCharsInvalidError.html create mode 100644 dist/docs/TrackNameInvalidError.html create mode 100644 dist/docs/TrackNameIsDuplicatedError.html create mode 100644 dist/docs/TrackNameTooLongError.html create mode 100644 dist/docs/TrackPublication.html create mode 100644 dist/docs/TrackServerTrackCapacityReachedError.html create mode 100644 dist/docs/TrackStats.html create mode 100644 dist/docs/TwilioError.html create mode 100644 dist/docs/VideoTrack.html create mode 100644 dist/docs/classes.list.html create mode 100644 dist/docs/fonts/glyphicons-halflings-regular.eot create mode 100644 dist/docs/fonts/glyphicons-halflings-regular.svg create mode 100644 dist/docs/fonts/glyphicons-halflings-regular.ttf create mode 100644 dist/docs/fonts/glyphicons-halflings-regular.woff create mode 100644 dist/docs/fonts/glyphicons-halflings-regular.woff2 create mode 100644 dist/docs/global.html create mode 100644 dist/docs/img/glyphicons-halflings-white.png create mode 100644 dist/docs/img/glyphicons-halflings.png create mode 100644 dist/docs/index.html create mode 100644 dist/docs/interfaces.list.html create mode 100644 dist/docs/module-twilio-video.html create mode 100644 dist/docs/modules.list.html create mode 100644 dist/docs/quicksearch.html create mode 100644 dist/docs/scripts/docstrap.lib.js create mode 100644 dist/docs/scripts/fulltext-search-ui.js create mode 100644 dist/docs/scripts/fulltext-search.js create mode 100644 dist/docs/scripts/lunr.min.js create mode 100644 dist/docs/scripts/prettify/Apache-License-2.0.txt create mode 100644 dist/docs/scripts/prettify/jquery.min.js create mode 100644 dist/docs/scripts/prettify/lang-css.js create mode 100644 dist/docs/scripts/prettify/prettify.js create mode 100644 dist/docs/scripts/sunlight.js create mode 100644 dist/docs/scripts/toc.js create mode 100644 dist/docs/styles/darkstrap.css create mode 100644 dist/docs/styles/prettify-tomorrow.css create mode 100644 dist/docs/styles/site.cerulean.css create mode 100644 dist/docs/styles/site.cosmo.css create mode 100644 dist/docs/styles/site.cyborg.css create mode 100644 dist/docs/styles/site.darkly.css create mode 100644 dist/docs/styles/site.darkstrap.css create mode 100644 dist/docs/styles/site.dibs-bootstrap.css create mode 100644 dist/docs/styles/site.flatly.css create mode 100644 dist/docs/styles/site.journal.css create mode 100644 dist/docs/styles/site.lumen.css create mode 100644 dist/docs/styles/site.paper.css create mode 100644 dist/docs/styles/site.readable.css create mode 100644 dist/docs/styles/site.sandstone.css create mode 100644 dist/docs/styles/site.simplex.css create mode 100644 dist/docs/styles/site.slate.css create mode 100644 dist/docs/styles/site.spacelab.css create mode 100644 dist/docs/styles/site.superhero.css create mode 100644 dist/docs/styles/site.united.css create mode 100644 dist/docs/styles/site.yeti.css create mode 100644 dist/docs/styles/sunlight.dark.css create mode 100644 dist/docs/styles/sunlight.default.css create mode 100644 dist/twilio-video.js create mode 100644 dist/twilio-video.min.js create mode 100644 es5/cancelableroompromise.js create mode 100644 es5/cancelableroompromise.js.map create mode 100644 es5/connect.js create mode 100644 es5/connect.js.map create mode 100644 es5/createlocaltrack.js create mode 100644 es5/createlocaltrack.js.map create mode 100644 es5/createlocaltracks.js create mode 100644 es5/createlocaltracks.js.map create mode 100644 es5/data/receiver.js create mode 100644 es5/data/receiver.js.map create mode 100644 es5/data/sender.js create mode 100644 es5/data/sender.js.map create mode 100644 es5/data/transceiver.js create mode 100644 es5/data/transceiver.js.map create mode 100644 es5/data/transport.js create mode 100644 es5/data/transport.js.map create mode 100644 es5/encodingparameters.js create mode 100644 es5/encodingparameters.js.map create mode 100644 es5/eventemitter.js create mode 100644 es5/eventemitter.js.map create mode 100644 es5/eventtarget.js create mode 100644 es5/eventtarget.js.map create mode 100644 es5/index.js create mode 100644 es5/index.js.map create mode 100644 es5/localparticipant.js create mode 100644 es5/localparticipant.js.map create mode 100644 es5/media/track/audiotrack.js create mode 100644 es5/media/track/audiotrack.js.map create mode 100644 es5/media/track/es5/index.js create mode 100644 es5/media/track/es5/index.js.map create mode 100644 es5/media/track/es5/localaudiotrack.js create mode 100644 es5/media/track/es5/localaudiotrack.js.map create mode 100644 es5/media/track/es5/localdatatrack.js create mode 100644 es5/media/track/es5/localdatatrack.js.map create mode 100644 es5/media/track/es5/localvideotrack.js create mode 100644 es5/media/track/es5/localvideotrack.js.map create mode 100644 es5/media/track/index.js create mode 100644 es5/media/track/index.js.map create mode 100644 es5/media/track/localaudiotrack.js create mode 100644 es5/media/track/localaudiotrack.js.map create mode 100644 es5/media/track/localaudiotrackpublication.js create mode 100644 es5/media/track/localaudiotrackpublication.js.map create mode 100644 es5/media/track/localdatatrack.js create mode 100644 es5/media/track/localdatatrack.js.map create mode 100644 es5/media/track/localdatatrackpublication.js create mode 100644 es5/media/track/localdatatrackpublication.js.map create mode 100644 es5/media/track/localmediatrack.js create mode 100644 es5/media/track/localmediatrack.js.map create mode 100644 es5/media/track/localtrackpublication.js create mode 100644 es5/media/track/localtrackpublication.js.map create mode 100644 es5/media/track/localvideotrack.js create mode 100644 es5/media/track/localvideotrack.js.map create mode 100644 es5/media/track/localvideotrackpublication.js create mode 100644 es5/media/track/localvideotrackpublication.js.map create mode 100644 es5/media/track/mediatrack.js create mode 100644 es5/media/track/mediatrack.js.map create mode 100644 es5/media/track/noisecancellationimpl.js create mode 100644 es5/media/track/noisecancellationimpl.js.map create mode 100644 es5/media/track/receiver.js create mode 100644 es5/media/track/receiver.js.map create mode 100644 es5/media/track/remoteaudiotrack.js create mode 100644 es5/media/track/remoteaudiotrack.js.map create mode 100644 es5/media/track/remoteaudiotrackpublication.js create mode 100644 es5/media/track/remoteaudiotrackpublication.js.map create mode 100644 es5/media/track/remotedatatrack.js create mode 100644 es5/media/track/remotedatatrack.js.map create mode 100644 es5/media/track/remotedatatrackpublication.js create mode 100644 es5/media/track/remotedatatrackpublication.js.map create mode 100644 es5/media/track/remotemediatrack.js create mode 100644 es5/media/track/remotemediatrack.js.map create mode 100644 es5/media/track/remotetrackpublication.js create mode 100644 es5/media/track/remotetrackpublication.js.map create mode 100644 es5/media/track/remotevideotrack.js create mode 100644 es5/media/track/remotevideotrack.js.map create mode 100644 es5/media/track/remotevideotrackpublication.js create mode 100644 es5/media/track/remotevideotrackpublication.js.map create mode 100644 es5/media/track/sender.js create mode 100644 es5/media/track/sender.js.map create mode 100644 es5/media/track/trackpublication.js create mode 100644 es5/media/track/trackpublication.js.map create mode 100644 es5/media/track/transceiver.js create mode 100644 es5/media/track/transceiver.js.map create mode 100644 es5/media/track/videoprocessoreventobserver.js create mode 100644 es5/media/track/videoprocessoreventobserver.js.map create mode 100644 es5/media/track/videotrack.js create mode 100644 es5/media/track/videotrack.js.map create mode 100644 es5/networkqualityconfiguration.js create mode 100644 es5/networkqualityconfiguration.js.map create mode 100644 es5/noisecancellationadapter.js create mode 100644 es5/noisecancellationadapter.js.map create mode 100644 es5/participant.js create mode 100644 es5/participant.js.map create mode 100644 es5/preflight/getCombinedConnectionStats.js create mode 100644 es5/preflight/getCombinedConnectionStats.js.map create mode 100644 es5/preflight/getturncredentials.js create mode 100644 es5/preflight/getturncredentials.js.map create mode 100644 es5/preflight/makestat.js create mode 100644 es5/preflight/makestat.js.map create mode 100644 es5/preflight/mos.js create mode 100644 es5/preflight/mos.js.map create mode 100644 es5/preflight/preflighttest.js create mode 100644 es5/preflight/preflighttest.js.map create mode 100644 es5/preflight/rtctypes.js create mode 100644 es5/preflight/rtctypes.js.map create mode 100644 es5/preflight/syntheticaudio.js create mode 100644 es5/preflight/syntheticaudio.js.map create mode 100644 es5/preflight/syntheticvideo.js create mode 100644 es5/preflight/syntheticvideo.js.map create mode 100644 es5/preflight/timer.js create mode 100644 es5/preflight/timer.js.map create mode 100644 es5/queueingeventemitter.js create mode 100644 es5/queueingeventemitter.js.map create mode 100644 es5/remoteparticipant.js create mode 100644 es5/remoteparticipant.js.map create mode 100644 es5/room.js create mode 100644 es5/room.js.map create mode 100644 es5/signaling/index.js create mode 100644 es5/signaling/index.js.map create mode 100644 es5/signaling/localparticipant.js create mode 100644 es5/signaling/localparticipant.js.map create mode 100644 es5/signaling/localtrackpublication.js create mode 100644 es5/signaling/localtrackpublication.js.map create mode 100644 es5/signaling/participant.js create mode 100644 es5/signaling/participant.js.map create mode 100644 es5/signaling/recording.js create mode 100644 es5/signaling/recording.js.map create mode 100644 es5/signaling/remoteparticipant.js create mode 100644 es5/signaling/remoteparticipant.js.map create mode 100644 es5/signaling/remotetrackpublication.js create mode 100644 es5/signaling/remotetrackpublication.js.map create mode 100644 es5/signaling/room.js create mode 100644 es5/signaling/room.js.map create mode 100644 es5/signaling/track.js create mode 100644 es5/signaling/track.js.map create mode 100644 es5/signaling/v2/cancelableroomsignalingpromise.js create mode 100644 es5/signaling/v2/cancelableroomsignalingpromise.js.map create mode 100644 es5/signaling/v2/dominantspeakersignaling.js create mode 100644 es5/signaling/v2/dominantspeakersignaling.js.map create mode 100644 es5/signaling/v2/icebox.js create mode 100644 es5/signaling/v2/icebox.js.map create mode 100644 es5/signaling/v2/iceconnectionmonitor.js create mode 100644 es5/signaling/v2/iceconnectionmonitor.js.map create mode 100644 es5/signaling/v2/index.js create mode 100644 es5/signaling/v2/index.js.map create mode 100644 es5/signaling/v2/localparticipant.js create mode 100644 es5/signaling/v2/localparticipant.js.map create mode 100644 es5/signaling/v2/localtrackpublication.js create mode 100644 es5/signaling/v2/localtrackpublication.js.map create mode 100644 es5/signaling/v2/mediasignaling.js create mode 100644 es5/signaling/v2/mediasignaling.js.map create mode 100644 es5/signaling/v2/networkqualitymonitor.js create mode 100644 es5/signaling/v2/networkqualitymonitor.js.map create mode 100644 es5/signaling/v2/networkqualitysignaling.js create mode 100644 es5/signaling/v2/networkqualitysignaling.js.map create mode 100644 es5/signaling/v2/peerconnection.js create mode 100644 es5/signaling/v2/peerconnection.js.map create mode 100644 es5/signaling/v2/peerconnectionmanager.js create mode 100644 es5/signaling/v2/peerconnectionmanager.js.map create mode 100644 es5/signaling/v2/publisherhintsignaling.js create mode 100644 es5/signaling/v2/publisherhintsignaling.js.map create mode 100644 es5/signaling/v2/recording.js create mode 100644 es5/signaling/v2/recording.js.map create mode 100644 es5/signaling/v2/remoteparticipant.js create mode 100644 es5/signaling/v2/remoteparticipant.js.map create mode 100644 es5/signaling/v2/remotetrackpublication.js create mode 100644 es5/signaling/v2/remotetrackpublication.js.map create mode 100644 es5/signaling/v2/renderhintssignaling.js create mode 100644 es5/signaling/v2/renderhintssignaling.js.map create mode 100644 es5/signaling/v2/room.js create mode 100644 es5/signaling/v2/room.js.map create mode 100644 es5/signaling/v2/trackprioritysignaling.js create mode 100644 es5/signaling/v2/trackprioritysignaling.js.map create mode 100644 es5/signaling/v2/trackswitchoffsignaling.js create mode 100644 es5/signaling/v2/trackswitchoffsignaling.js.map create mode 100644 es5/signaling/v2/twilioconnectiontransport.js create mode 100644 es5/signaling/v2/twilioconnectiontransport.js.map create mode 100644 es5/statemachine.js create mode 100644 es5/statemachine.js.map create mode 100644 es5/stats/average.js create mode 100644 es5/stats/average.js.map create mode 100644 es5/stats/icereport.js create mode 100644 es5/stats/icereport.js.map create mode 100644 es5/stats/icereportfactory.js create mode 100644 es5/stats/icereportfactory.js.map create mode 100644 es5/stats/localaudiotrackstats.js create mode 100644 es5/stats/localaudiotrackstats.js.map create mode 100644 es5/stats/localtrackstats.js create mode 100644 es5/stats/localtrackstats.js.map create mode 100644 es5/stats/localvideotrackstats.js create mode 100644 es5/stats/localvideotrackstats.js.map create mode 100644 es5/stats/networkqualityaudiostats.js create mode 100644 es5/stats/networkqualityaudiostats.js.map create mode 100644 es5/stats/networkqualitybandwidthstats.js create mode 100644 es5/stats/networkqualitybandwidthstats.js.map create mode 100644 es5/stats/networkqualityfractionloststats.js create mode 100644 es5/stats/networkqualityfractionloststats.js.map create mode 100644 es5/stats/networkqualitylatencystats.js create mode 100644 es5/stats/networkqualitylatencystats.js.map create mode 100644 es5/stats/networkqualitymediastats.js create mode 100644 es5/stats/networkqualitymediastats.js.map create mode 100644 es5/stats/networkqualityrecvstats.js create mode 100644 es5/stats/networkqualityrecvstats.js.map create mode 100644 es5/stats/networkqualitysendorrecvstats.js create mode 100644 es5/stats/networkqualitysendorrecvstats.js.map create mode 100644 es5/stats/networkqualitysendstats.js create mode 100644 es5/stats/networkqualitysendstats.js.map create mode 100644 es5/stats/networkqualitystats.js create mode 100644 es5/stats/networkqualitystats.js.map create mode 100644 es5/stats/networkqualityvideostats.js create mode 100644 es5/stats/networkqualityvideostats.js.map create mode 100644 es5/stats/peerconnectionreport.js create mode 100644 es5/stats/peerconnectionreport.js.map create mode 100644 es5/stats/peerconnectionreportfactory.js create mode 100644 es5/stats/peerconnectionreportfactory.js.map create mode 100644 es5/stats/receiverreport.js create mode 100644 es5/stats/receiverreport.js.map create mode 100644 es5/stats/receiverreportfactory.js create mode 100644 es5/stats/receiverreportfactory.js.map create mode 100644 es5/stats/remoteaudiotrackstats.js create mode 100644 es5/stats/remoteaudiotrackstats.js.map create mode 100644 es5/stats/remotetrackstats.js create mode 100644 es5/stats/remotetrackstats.js.map create mode 100644 es5/stats/remotevideotrackstats.js create mode 100644 es5/stats/remotevideotrackstats.js.map create mode 100644 es5/stats/senderorreceiverreport.js create mode 100644 es5/stats/senderorreceiverreport.js.map create mode 100644 es5/stats/senderorreceiverreportfactory.js create mode 100644 es5/stats/senderorreceiverreportfactory.js.map create mode 100644 es5/stats/senderreport.js create mode 100644 es5/stats/senderreport.js.map create mode 100644 es5/stats/senderreportfactory.js create mode 100644 es5/stats/senderreportfactory.js.map create mode 100644 es5/stats/statsreport.js create mode 100644 es5/stats/statsreport.js.map create mode 100644 es5/stats/sum.js create mode 100644 es5/stats/sum.js.map create mode 100644 es5/stats/trackstats.js create mode 100644 es5/stats/trackstats.js.map create mode 100644 es5/transceiver.js create mode 100644 es5/transceiver.js.map create mode 100644 es5/twilioconnection.js create mode 100644 es5/twilioconnection.js.map create mode 100644 es5/util/asyncvar.js create mode 100644 es5/util/asyncvar.js.map create mode 100644 es5/util/backoff.js create mode 100644 es5/util/backoff.js.map create mode 100644 es5/util/browserdetection.js create mode 100644 es5/util/browserdetection.js.map create mode 100644 es5/util/cancelablepromise.js create mode 100644 es5/util/cancelablepromise.js.map create mode 100644 es5/util/constants.js create mode 100644 es5/util/constants.js.map create mode 100644 es5/util/detectsilentaudio.js create mode 100644 es5/util/detectsilentaudio.js.map create mode 100644 es5/util/detectsilentvideo.js create mode 100644 es5/util/detectsilentvideo.js.map create mode 100644 es5/util/documentvisibilitymonitor.js create mode 100644 es5/util/documentvisibilitymonitor.js.map create mode 100644 es5/util/dynamicimport.js create mode 100644 es5/util/dynamicimport.js.map create mode 100644 es5/util/eventobserver.js create mode 100644 es5/util/eventobserver.js.map create mode 100644 es5/util/filter.js create mode 100644 es5/util/filter.js.map create mode 100644 es5/util/index.js create mode 100644 es5/util/index.js.map create mode 100644 es5/util/insightspublisher/index.js create mode 100644 es5/util/insightspublisher/index.js.map create mode 100644 es5/util/insightspublisher/null.js create mode 100644 es5/util/insightspublisher/null.js.map create mode 100644 es5/util/localmediarestartdeferreds.js create mode 100644 es5/util/localmediarestartdeferreds.js.map create mode 100644 es5/util/log.js create mode 100644 es5/util/log.js.map create mode 100644 es5/util/movingaveragedelta.js create mode 100644 es5/util/movingaveragedelta.js.map create mode 100644 es5/util/networkmonitor.js create mode 100644 es5/util/networkmonitor.js.map create mode 100644 es5/util/nullobserver.js create mode 100644 es5/util/nullobserver.js.map create mode 100644 es5/util/sdp/index.js create mode 100644 es5/util/sdp/index.js.map create mode 100644 es5/util/sdp/issue8329.js create mode 100644 es5/util/sdp/issue8329.js.map create mode 100644 es5/util/sdp/simulcast.js create mode 100644 es5/util/sdp/simulcast.js.map create mode 100644 es5/util/sdp/trackmatcher.js create mode 100644 es5/util/sdp/trackmatcher.js.map create mode 100644 es5/util/sid.js create mode 100644 es5/util/sid.js.map create mode 100644 es5/util/support.js create mode 100644 es5/util/support.js.map create mode 100644 es5/util/timeout.js create mode 100644 es5/util/timeout.js.map create mode 100644 es5/util/timeoutpromise.js create mode 100644 es5/util/timeoutpromise.js.map create mode 100644 es5/util/twilio-video-errors.js create mode 100644 es5/util/twilio-video-errors.js.map create mode 100644 es5/util/twilioerror.js create mode 100644 es5/util/twilioerror.js.map create mode 100644 es5/util/twiliowarning.js create mode 100644 es5/util/twiliowarning.js.map create mode 100644 es5/util/validate.js create mode 100644 es5/util/validate.js.map create mode 100644 es5/vendor/inherits.js create mode 100644 es5/vendor/inherits.js.map create mode 100644 es5/vendor/loglevel.js create mode 100644 es5/vendor/loglevel.js.map create mode 100644 es5/webaudio/audiocontext.js create mode 100644 es5/webaudio/audiocontext.js.map create mode 100644 es5/webaudio/detectsilence.js create mode 100644 es5/webaudio/detectsilence.js.map create mode 100644 es5/webaudio/workaround180748.js create mode 100644 es5/webaudio/workaround180748.js.map create mode 100644 es5/webrtc/getstats.js create mode 100644 es5/webrtc/getstats.js.map create mode 100644 es5/webrtc/getusermedia.js create mode 100644 es5/webrtc/getusermedia.js.map create mode 100644 es5/webrtc/index.js create mode 100644 es5/webrtc/index.js.map create mode 100644 es5/webrtc/mediastream.js create mode 100644 es5/webrtc/mediastream.js.map create mode 100644 es5/webrtc/mediastreamtrack.js create mode 100644 es5/webrtc/mediastreamtrack.js.map create mode 100644 es5/webrtc/rtcicecandidate.js create mode 100644 es5/webrtc/rtcicecandidate.js.map create mode 100644 es5/webrtc/rtcpeerconnection/chrome.js create mode 100644 es5/webrtc/rtcpeerconnection/chrome.js.map create mode 100644 es5/webrtc/rtcpeerconnection/firefox.js create mode 100644 es5/webrtc/rtcpeerconnection/firefox.js.map create mode 100644 es5/webrtc/rtcpeerconnection/index.js create mode 100644 es5/webrtc/rtcpeerconnection/index.js.map create mode 100644 es5/webrtc/rtcpeerconnection/safari.js create mode 100644 es5/webrtc/rtcpeerconnection/safari.js.map create mode 100644 es5/webrtc/rtcrtpsender.js create mode 100644 es5/webrtc/rtcrtpsender.js.map create mode 100644 es5/webrtc/rtcsessiondescription/chrome.js create mode 100644 es5/webrtc/rtcsessiondescription/chrome.js.map create mode 100644 es5/webrtc/rtcsessiondescription/firefox.js create mode 100644 es5/webrtc/rtcsessiondescription/firefox.js.map create mode 100644 es5/webrtc/rtcsessiondescription/index.js create mode 100644 es5/webrtc/rtcsessiondescription/index.js.map create mode 100644 es5/webrtc/util/index.js create mode 100644 es5/webrtc/util/index.js.map create mode 100644 es5/webrtc/util/latch.js create mode 100644 es5/webrtc/util/latch.js.map create mode 100644 es5/webrtc/util/sdp.js create mode 100644 es5/webrtc/util/sdp.js.map diff --git a/dist/docs/AccessTokenExpiredError.html b/dist/docs/AccessTokenExpiredError.html new file mode 100644 index 000000000..8f6ab25ef --- /dev/null +++ b/dist/docs/AccessTokenExpiredError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: AccessTokenExpiredError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: AccessTokenExpiredError

+
+ +
+ +

+ AccessTokenExpiredError +

+ +

Raised whenever the AccessToken used for connecting, or reconnecting to a Room has expired.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

20104

message + + +string + + + + +

'Access Token expired or expiration date invalid'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/AccessTokenGrantsInvalidError.html b/dist/docs/AccessTokenGrantsInvalidError.html new file mode 100644 index 000000000..a404dbbec --- /dev/null +++ b/dist/docs/AccessTokenGrantsInvalidError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: AccessTokenGrantsInvalidError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: AccessTokenGrantsInvalidError

+
+ +
+ +

+ AccessTokenGrantsInvalidError +

+ +

Raised whenever the AccessToken used for connecting to a Room has invalid grants.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

20106

message + + +string + + + + +

'Invalid Access Token grants'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/AccessTokenHeaderInvalidError.html b/dist/docs/AccessTokenHeaderInvalidError.html new file mode 100644 index 000000000..ad3152870 --- /dev/null +++ b/dist/docs/AccessTokenHeaderInvalidError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: AccessTokenHeaderInvalidError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: AccessTokenHeaderInvalidError

+
+ +
+ +

+ AccessTokenHeaderInvalidError +

+ +

Raised whenever the AccessToken used for connecting to a Room has an invalid header.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

20102

message + + +string + + + + +

'Invalid Access Token header'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/AccessTokenInvalidError.html b/dist/docs/AccessTokenInvalidError.html new file mode 100644 index 000000000..a80a00e7b --- /dev/null +++ b/dist/docs/AccessTokenInvalidError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: AccessTokenInvalidError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: AccessTokenInvalidError

+
+ +
+ +

+ AccessTokenInvalidError +

+ +

Raised whenever the AccessToken used for connecting to a Room is invalid.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

20101

message + + +string + + + + +

'Invalid Access Token'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/AccessTokenIssuerInvalidError.html b/dist/docs/AccessTokenIssuerInvalidError.html new file mode 100644 index 000000000..b8c5d642a --- /dev/null +++ b/dist/docs/AccessTokenIssuerInvalidError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: AccessTokenIssuerInvalidError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: AccessTokenIssuerInvalidError

+
+ +
+ +

+ AccessTokenIssuerInvalidError +

+ +

Raised whenever the AccessToken used for connecting to a Room contains an invalid issuer or subject.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

20103

message + + +string + + + + +

'Invalid Access Token issuer/subject'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/AccessTokenNotYetValidError.html b/dist/docs/AccessTokenNotYetValidError.html new file mode 100644 index 000000000..561405f59 --- /dev/null +++ b/dist/docs/AccessTokenNotYetValidError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: AccessTokenNotYetValidError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: AccessTokenNotYetValidError

+
+ +
+ +

+ AccessTokenNotYetValidError +

+ +

Raised whenever the AccessToken used for connecting to a Room is not yet valid.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

20105

message + + +string + + + + +

'Access Token not yet valid'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/AccessTokenSignatureInvalidError.html b/dist/docs/AccessTokenSignatureInvalidError.html new file mode 100644 index 000000000..4f99adcfa --- /dev/null +++ b/dist/docs/AccessTokenSignatureInvalidError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: AccessTokenSignatureInvalidError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: AccessTokenSignatureInvalidError

+
+ +
+ +

+ AccessTokenSignatureInvalidError +

+ +

Raised whenever the AccessToken used for connecting to a Room has an invalid signature.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

20107

message + + +string + + + + +

'Invalid Access Token signature'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/AudioTrack.html b/dist/docs/AudioTrack.html new file mode 100644 index 000000000..c864cabb0 --- /dev/null +++ b/dist/docs/AudioTrack.html @@ -0,0 +1,1845 @@ + + + + + + + Documentation Class: AudioTrack + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: AudioTrack

+
+ +
+ +

+ AudioTrack +

+ +

An AudioTrack is a Track representing audio.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
isStarted + + +boolean + + + + + + + + +

Whether or not the AudioTrack has +started; if the AudioTrack started, there is enough audio data to +begin playback

isEnabled + + +boolean + + + + + + + + +

Whether or not the AudioTrack is +enabled; if the AudioTrack is not enabled, it is "muted"

kind + + +Track.Kind + + + + + + + + +

"audio"

mediaStreamTrack + + +MediaStreamTrack + + + + + + + + +

An audio MediaStreamTrack

processedTrack + + +MediaStreamTrack + + + + + + + + + <nullable>
+ +

The source of processed audio samples. +It is always null as audio processing is not currently supported.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

attach()

+ + +
+
+ + +
+

Create an HTMLAudioElement and attach the AudioTrack to it.

+

The HTMLAudioElement's srcObject will be set to a new +MediaStream containing the AudioTrack's MediaStreamTrack.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+

audioElement

+
+ + + +
+
+ Type +
+
+ +HTMLAudioElement + + + +
+
+ + + + + +
Example
+ +
const Video = require('twilio-video');
+
+Video.createLocalAudioTrack().then(function(audioTrack) {
+  const audioElement = audioTrack.attach();
+  document.body.appendChild(audioElement);
+});
+  
+ + + +
+ + + +
+
+

attach(mediaElement)

+ + +
+
+ + +
+

Attach the AudioTrack to an existing HTMLMediaElement. The +HTMLMediaElement could be an HTMLAudioElement or an HTMLVideoElement.

+

If the HTMLMediaElement's srcObject is not set to a MediaStream, +this method sets it to a new MediaStream containing the AudioTrack's +MediaStreamTrack; otherwise, it adds the MediaTrack's +MediaStreamTrack to the existing MediaStream. Finally, if there are any other +MediaStreamTracks of the same kind on the MediaStream, this method removes +them.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
mediaElement + + +HTMLMediaElement + + + + +

The HTMLMediaElement to attach to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+

mediaElement

+
+ + + +
+
+ Type +
+
+ +HTMLMediaElement + + + +
+
+ + + + + +
Example
+ +
const Video = require('twilio-video');
+
+const videoElement = document.createElement('video');
+document.body.appendChild(videoElement);
+
+Video.createLocalAudioTrack().then(function(audioTrack) {
+  audioTrack.attach(videoElement);
+});
+  
+ + + +
+ + + +
+
+

attach(selector)

+ + +
+
+ + +
+

Attach the AudioTrack to an HTMLMediaElement selected by +document.querySelector. The HTMLMediaElement could be an +HTMLAudioElement or an HTMLVideoElement.

+

If the HTMLMediaElement's srcObject is not set to a MediaStream, +this method sets it to a new MediaStream containing the AudioTrack's +MediaStreamTrack; otherwise, it adds the AudioTrack's +MediaStreamTrack to the existing MediaStream. Finally, if there are any other +MediaStreamTracks of the same kind on the MediaStream, this method removes +them.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
selector + + +string + + + + +

A query selector for the HTMLMediaElement to +attach to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+

mediaElement

+
+ + + +
+
+ Type +
+
+ +HTMLMediaElement + + + +
+
+ + + + + +
Example
+ +
const Video = require('twilio-video');
+
+const videoElement = document.createElement('video');
+videoElement.id = 'my-video-element';
+document.body.appendChild(videoElement);
+
+Video.createLocalAudioTrack().then(function(track) {
+  track.attach('#my-video-element');
+});
+ + + +
+ + + +
+
+

detach()

+ + +
+
+ + +
+

Detach the AudioTrack from all previously attached HTMLMediaElements.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+

mediaElements

+
+ + + +
+
+ Type +
+
+ +Array.<HTMLMediaElement> + + + +
+
+ + + + + +
Example
+ +
const mediaElements = audioTrack.detach();
+mediaElements.forEach(mediaElement => mediaElement.remove());
+  
+ + + +
+ + + +
+
+

detach(mediaElement)

+ + +
+
+ + +
+

Detach the AudioTrack from a previously attached HTMLMediaElement.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
mediaElement + + +HTMLMediaElement + + + + +

One of the HTMLMediaElements to +which the AudioTrack is attached

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+

mediaElement

+
+ + + +
+
+ Type +
+
+ +HTMLMediaElement + + + +
+
+ + + + + +
Example
+ +
const videoElement = document.getElementById('my-video-element');
+audioTrack.detach(videoElement).remove();
+  
+ + + +
+ + + +
+
+

detach(selector)

+ + +
+
+ + +
+

Detach the AudioTrack from a previously attached HTMLMediaElement +specified by document.querySelector.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
selector + + +string + + + + +

The query selector of HTMLMediaElement to which +the AudioTrack is attached

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+

mediaElement

+
+ + + +
+
+ Type +
+
+ +HTMLMediaElement + + + +
+
+ + + + + +
Example
+ +
audioTrack.detach('#my-video-element').remove();
+ + + +
+ +
+ + + + + +

Events

+ +
+ +
+
+

disabled

+ + +
+
+ + +
+

The AudioTrack was disabled, i.e. "muted".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +AudioTrack + + + + +

The AudioTrack that was disabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The AudioTrack was enabled, i.e. "unmuted".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +AudioTrack + + + + +

The AudioTrack that was enabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The AudioTrack started. This means there is enough audio data to +begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +AudioTrack + + + + +

The AudioTrack that started

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/ConfigurationAcquireFailedError.html b/dist/docs/ConfigurationAcquireFailedError.html new file mode 100644 index 000000000..d25054618 --- /dev/null +++ b/dist/docs/ConfigurationAcquireFailedError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: ConfigurationAcquireFailedError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: ConfigurationAcquireFailedError

+
+ +
+ +

+ ConfigurationAcquireFailedError +

+ +

Raised whenever the Client is unable to acquire configuration information from the Server.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53500

message + + +string + + + + +

'Unable to acquire configuration'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/ConfigurationAcquireTurnFailedError.html b/dist/docs/ConfigurationAcquireTurnFailedError.html new file mode 100644 index 000000000..d0ed3456f --- /dev/null +++ b/dist/docs/ConfigurationAcquireTurnFailedError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: ConfigurationAcquireTurnFailedError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: ConfigurationAcquireTurnFailedError

+
+ +
+ +

+ ConfigurationAcquireTurnFailedError +

+ +

Raised whenever the Server is unable to return TURN credentials to the Client

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53501

message + + +string + + + + +

'Unable to acquire TURN credentials'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/LocalAudioTrack.html b/dist/docs/LocalAudioTrack.html new file mode 100644 index 000000000..1f7c45860 --- /dev/null +++ b/dist/docs/LocalAudioTrack.html @@ -0,0 +1,2364 @@ + + + + + + + Documentation Class: LocalAudioTrack + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: LocalAudioTrack

+
+ +
+ +

+ LocalAudioTrack +

+ +

A LocalAudioTrack is an AudioTrack representing audio that +your LocalParticipant can publish to a Room. It can be +enabled and disabled with LocalAudioTrack#enable and +LocalAudioTrack#disable or stopped completely with +LocalAudioTrack#stop.

+ + +
+ + +
+
+ + +
+
+

new Twilio.Video.LocalAudioTrack(mediaStreamTrack [, options])

+ + +
+
+ + +
+

Construct a LocalAudioTrack from a MediaStreamTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
mediaStreamTrack + + +MediaStreamTrack + + + + + + + + + + +

An audio MediaStreamTrack

options + + +LocalTrackOptions + + + + + + + <optional>
+ + + + + +

LocalTrack options

+ + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
id + + +Track.ID + + + + + + + + +

The LocalAudioTrack's ID

isMuted + + +boolean + + + + + + + + +

Whether or not the audio source has stopped sending samples to the +LocalAudioTrack; This can happen when the microphone is taken over by another application, +mainly on mobile devices; When this property toggles, then muted and unmuted +events are fired appropriately

isStopped + + +boolean + + + + + + + + +

Whether or not the LocalAudioTrack is +stopped

noiseCancellation + + +NoiseCancellation + + + + + + + + + <nullable>
+ +

When a LocalAudioTrack is created +with NoiseCancellationOptions, this property provides interface +to enable or disable the noise cancellation at runtime.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

attach()

+ + +
+
+ + +
+

Create an HTMLAudioElement and attach the AudioTrack to it.

+

The HTMLAudioElement's srcObject will be set to a new +MediaStream containing the AudioTrack's MediaStreamTrack.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+

audioElement

+
+ + + +
+
+ Type +
+
+ +HTMLAudioElement + + + +
+
+ + + + + +
Example
+ +
const Video = require('twilio-video');
+
+Video.createLocalAudioTrack().then(function(audioTrack) {
+  const audioElement = audioTrack.attach();
+  document.body.appendChild(audioElement);
+});
+  
+ + + +
+ + + +
+
+

detach()

+ + +
+
+ + +
+

Detach the AudioTrack from all previously attached HTMLMediaElements.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+

mediaElements

+
+ + + +
+
+ Type +
+
+ +Array.<HTMLMediaElement> + + + +
+
+ + + + + +
Example
+ +
const mediaElements = audioTrack.detach();
+mediaElements.forEach(mediaElement => mediaElement.remove());
+  
+ + + +
+ + + +
+
+

disable()

+ + +
+
+ + +
+

Disable the LocalAudioTrack. This is equivalent to muting the audio source.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ + + +
+
+

enable()

+ + +
+
+ + +
+

Enable the LocalAudioTrack. This is equivalent to unmuting the audio source.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ + + +
+
+

enable( [enabled])

+ + +
+
+ + +
+

Enable or disable the LocalAudioTrack. This is equivalent to unmuting or muting +the audio source respectively.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
enabled + + +boolean + + + + + + + <optional>
+ + + + + +

Specify false to disable the +LocalAudioTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ + + +
+
+

restart( [constraints])

+ + +
+
+ + +
+

Restart the LocalAudioTrack. This stops the existing MediaStreamTrack +and creates a new MediaStreamTrack. If the LocalAudioTrack is being published +to a Room, then all the RemoteParticipants will start receiving media +from the newly created MediaStreamTrack. You can access the new MediaStreamTrack via +the mediaStreamTrack property. If you want to listen to events on +the MediaStreamTrack directly, please do so in the "started" event handler. Also, +the LocalAudioTrack's ID is no longer guaranteed to be the same as the +underlying MediaStreamTrack's ID.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
constraints + + +MediaTrackConstraints + + + + + + + <optional>
+ + + + + +

The optional MediaTrackConstraints +for restarting the LocalAudioTrack; If not specified, then the current MediaTrackConstraints +will be used; If {} (empty object) is specified, then the default MediaTrackConstraints +will be used

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + +
Returns:
+ + +
+

Rejects with a TypeError if the LocalAudioTrack was not created +using an one of createLocalAudioTrack, createLocalTracks or connect; +Also rejects with the DOMException +raised by getUserMedia when it fails

+
+ + + +
+
+ Type +
+
+ +Promise.<void> + + + +
+
+ + + + + +
Example
+ +
const { connect, createLocalAudioTrack } = require('twilio-video');
+
+// Create a LocalAudioTrack that captures audio from a USB microphone.
+createLocalAudioTrack({ deviceId: 'usb-mic-id' }).then(function(localAudioTrack) {
+  return connect('token', {
+    name: 'my-cool-room',
+    tracks: [localAudioTrack]
+  });
+}).then(function(room) {
+  // Restart the LocalAudioTrack to capture audio from the default microphone.
+  const localAudioTrack = Array.from(room.localParticipant.audioTracks.values())[0].track;
+  return localAudioTrack.restart({ deviceId: 'default-mic-id' });
+});
+ + + +
+ + + +
+
+

stop()

+ + +
+
+ + +
+

Calls stop on the underlying MediaStreamTrack. If you choose to stop a +LocalAudioTrack, you should unpublish it after stopping.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ +
+ + + + + +

Events

+ +
+ +
+
+

disabled

+ + +
+
+ + +
+

The LocalAudioTrack was disabled, i.e. the audio source was muted by the user.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that was +disabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The LocalAudioTrack was enabled, i.e. the audio source was unmuted by the user.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that was enabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

muted

+ + +
+
+ + +
+

The LocalAudioTrack was muted because the audio source stopped sending samples, most +likely due to another application taking said audio source, especially on mobile devices.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that was muted

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The LocalAudioTrack started. This means there is enough audio data to +begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

stopped

+ + +
+
+ + +
+

The LocalAudioTrack stopped, either because LocalAudioTrack#stop +or LocalAudioTrack#restart was called or because the underlying +MediaStreamTrack ended.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that stopped

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unmuted

+ + +
+
+ + +
+

The LocalAudioTrack was unmuted because the audio source resumed sending samples, +most likely due to the application that took over the said audio source has released it +back to the application, especially on mobile devices. This event is also fired when +LocalAudioTrack#restart is called on a muted LocalAudioTrack with a +new audio source.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that was unmuted

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/LocalAudioTrackPublication.html b/dist/docs/LocalAudioTrackPublication.html new file mode 100644 index 000000000..ba8a6a44e --- /dev/null +++ b/dist/docs/LocalAudioTrackPublication.html @@ -0,0 +1,1159 @@ + + + + + + + Documentation Class: LocalAudioTrackPublication + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: LocalAudioTrackPublication

+
+ +
+ +

+ LocalAudioTrackPublication +

+ +

A LocalAudioTrackPublication is a LocalAudioTrack that has +been published to a Room.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
kind + + +Track.Kind + + + + +

"audio"

track + + +LocalAudioTrack + + + + +

the LocalAudioTrack

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

setPriority(priority)

+ + +
+
+ + +
+

Update the Track.Priority of the published LocalTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
priority + + +Track.Priority + + + + +

the new Track.priority

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Throws:
+ + + +
+ + +RangeError + + + + +
+ + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ + + +
+
+

unpublish()

+ + +
+
+ + +
+

Unpublish a LocalTrackPublication. This means that the media +from this LocalTrackPublication is no longer available to the +Room's RemoteParticipants.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ +
+ + + + + +

Events

+ +
+ +
+
+

trackDisabled

+ + +
+
+ + +
+

The published Track was disabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The published Track was enabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warning

+ + +
+
+ + +
+

The published LocalTrack encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warningsCleared

+ + +
+
+ + +
+

The published LocalTrack cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/LocalAudioTrackStats.html b/dist/docs/LocalAudioTrackStats.html new file mode 100644 index 000000000..43c66fa9c --- /dev/null +++ b/dist/docs/LocalAudioTrackStats.html @@ -0,0 +1,454 @@ + + + + + + + Documentation Class: LocalAudioTrackStats + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: LocalAudioTrackStats

+
+ +
+ +

+ LocalAudioTrackStats +

+ +

Statistics for a LocalAudioTrack.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
audioLevel + + +AudioLevel + + + + + + + + + <nullable>
+ +

Input AudioLevel

jitter + + +number + + + + + + + + + <nullable>
+ +

Audio jitter in milliseconds

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/LocalDataTrack.html b/dist/docs/LocalDataTrack.html new file mode 100644 index 000000000..2b3253d05 --- /dev/null +++ b/dist/docs/LocalDataTrack.html @@ -0,0 +1,837 @@ + + + + + + + Documentation Class: LocalDataTrack + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: LocalDataTrack

+
+ +
+ +

+ LocalDataTrack +

+ +

A LocalDataTrack is a Track representing data that your +LocalParticipant can publish to a Room.

+ + +
+ + +
+
+ + +
+
+

new Twilio.Video.LocalDataTrack( [options])

+ + +
+
+ + +
+

Construct a LocalDataTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +LocalDataTrackOptions + + + + + + + <optional>
+ + + + + +

LocalDataTrack options

+ + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
id + + +Track.ID + + + + + + + + +

The LocalDataTrack's ID

kind + + +Track.Kind + + + + + + + + +

"data"

maxPacketLifeTime + + +number + + + + + + + + + <nullable>
+ +

If non-null, this represents a time +limit (in milliseconds) during which the LocalDataTrack will send +or re-send data if not acknowledged on the underlying RTCDataChannel(s).

maxRetransmits + + +number + + + + + + + + + <nullable>
+ +

If non-null, this represents the number +of times the LocalDataTrack will resend data if not successfully +delivered on the underlying RTCDataChannel(s).

ordered + + +boolean + + + + + + + + +

true if data on the LocalDataTrack is +guaranteed to be sent in order.

reliable + + +boolean + + + + + + + + +

This is true if both +maxPacketLifeTime and maxRetransmits are set to +null. In other words, if this is true, there is no bound on packet lifetime +or the number of times the LocalDataTrack will attempt to send +data, ensuring "reliable" transmission.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
var Video = require('twilio-video');
+
+var localDataTrack = new Video.LocalDataTrack();
+window.addEventListener('mousemove', function(event) {
+  localDataTrack.send(JSON.stringify({
+    x: e.clientX,
+    y: e.clientY
+  }));
+});
+
+var token1 = getAccessToken();
+Video.connect(token1, {
+  name: 'my-cool-room',
+  tracks: [localDataTrack]
+});
+
+var token2 = getAccessToken();
+Video.connect(token2, {
+  name: 'my-cool-room',
+  tracks: []
+}).then(function(room) {
+  room.on('trackSubscribed', function(track) {
+    track.on('message', function(message) {
+      console.log(JSON.parse(message)); // { x: <number>, y: <number> }
+    });
+  });
+});
+ + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

send(data)

+ + +
+
+ + +
+

Send a message over the LocalDataTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
data + + +string +| + +Blob +| + +ArrayBuffer +| + +ArrayBufferView + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +void + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/LocalDataTrackPublication.html b/dist/docs/LocalDataTrackPublication.html new file mode 100644 index 000000000..9a86d8de5 --- /dev/null +++ b/dist/docs/LocalDataTrackPublication.html @@ -0,0 +1,1159 @@ + + + + + + + Documentation Class: LocalDataTrackPublication + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: LocalDataTrackPublication

+
+ +
+ +

+ LocalDataTrackPublication +

+ +

A LocalDataTrackPublication is a LocalDataTrack that has been +published to a Room.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
kind + + +Track.Kind + + + + +

"data"

track + + +LocalDataTrack + + + + +

the LocalDataTrack

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

setPriority(priority)

+ + +
+
+ + +
+

Update the Track.Priority of the published LocalTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
priority + + +Track.Priority + + + + +

the new Track.priority

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Throws:
+ + + +
+ + +RangeError + + + + +
+ + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ + + +
+
+

unpublish()

+ + +
+
+ + +
+

Unpublish a LocalTrackPublication. This means that the media +from this LocalTrackPublication is no longer available to the +Room's RemoteParticipants.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ +
+ + + + + +

Events

+ +
+ +
+
+

trackDisabled

+ + +
+
+ + +
+

The published Track was disabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The published Track was enabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warning

+ + +
+
+ + +
+

The published LocalTrack encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warningsCleared

+ + +
+
+ + +
+

The published LocalTrack cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/LocalParticipant.html b/dist/docs/LocalParticipant.html new file mode 100644 index 000000000..c70f1332b --- /dev/null +++ b/dist/docs/LocalParticipant.html @@ -0,0 +1,3666 @@ + + + + + + + Documentation Class: LocalParticipant + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: LocalParticipant

+
+ +
+ +

+ LocalParticipant +

+ +

A LocalParticipant represents the local Participant in a +Room.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
audioTracks + + +Map.<Track.SID, LocalAudioTrackPublication> + + + + +

The LocalParticipant's LocalAudioTrackPublications

dataTracks + + +Map.<Track.SID, LocalDataTrackPublication> + + + + +

The LocalParticipant's LocalDataTrackPublications

tracks + + +Map.<Track.SID, LocalTrackPublication> + + + + +

The LocalParticipant's LocalTrackPublications

videoTracks + + +Map.<Track.SID, LocalVideoTrackPublication> + + + + +

The LocalParticipant's LocalVideoTrackPublications

signalingRegion + + +string + + + + +

The geographical region of the +signaling edge the LocalParticipant is connected to.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

publishTrack(localTrack [, options])

+ + +
+
+ + +
+

Publishes a LocalTrack to the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
localTrack + + +LocalTrack + + + + + + + + + + +

The LocalTrack to publish

options + + +LocalTrackPublishOptions + + + + + + + <optional>
+ + + + + +

The LocalTrackPublishOptions +for publishing the LocalTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Throws:
+
    +
  • + +
    + + +TypeError + + + + +
    + +
  • + +
  • + +
    + + +RangeError + + + + +
    + +
  • +
+ + +
Returns:
+ + +
+ +
+ + + +
+
+ Type +
+
+ +Promise.<LocalTrackPublication> + + + +
+
+ + + + + +
Example
+ +
var Video = require('twilio-video');
+
+Video.connect(token, {
+  name: 'my-cool-room',
+  audio: true
+}).then(function(room) {
+  return Video.createLocalVideoTrack({
+    name: 'camera'
+  }).then(function(localVideoTrack) {
+    return room.localParticipant.publishTrack(localVideoTrack, {
+      priority: 'high'
+    });
+  });
+}).then(function(publication) {
+  console.log('The LocalTrack "' + publication.trackName
+    + '" was successfully published with priority "'
+    * publication.priority + '"');
+});
+  
+ + + +
+ + + +
+
+

publishTrack(mediaStreamTrack [, options])

+ + +
+
+ + +
+

Publishes a MediaStreamTrack to the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
mediaStreamTrack + + +MediaStreamTrack + + + + + + + + + + +

The MediaStreamTrack +to publish; if a corresponding LocalAudioTrack or +LocalVideoTrack has not yet been published, this method will +construct one

options + + +MediaStreamTrackPublishOptions + + + + + + + <optional>
+ + + + + +

The options for publishing +the MediaStreamTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Throws:
+
    +
  • + +
    + + +TypeError + + + + +
    + +
  • + +
  • + +
    + + +RangeError + + + + +
    + +
  • +
+ + +
Returns:
+ + +
+ +
+ + + +
+
+ Type +
+
+ +Promise.<LocalTrackPublication> + + + +
+
+ + + + + +
Example
+ +
var Video = require('twilio-video');
+
+Video.connect(token, {
+  name: 'my-cool-room',
+  audio: true
+}).then(function(room) {
+  return navigator.mediaDevices.getUserMedia({
+    video: true
+  }).then(function(mediaStream) {
+    var mediaStreamTrack = mediaStream.getTracks()[0];
+    return room.localParticipant.publishTrack(mediaStreamTrack, {
+      name: 'camera',
+      priority: 'high'
+    });
+  });
+}).then(function(publication) {
+  console.log('The LocalTrack "' + publication.trackName
+    + '" was successfully published with priority "'
+    * publication.priority + '"');
+});
+ + + +
+ + + +
+
+

publishTracks(tracks)

+ + +
+
+ + +
+

Publishes multiple LocalTracks to the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
tracks + + +Array.<(LocalTrack|MediaStreamTrack)> + + + + +

The LocalTracks +to publish; for any MediaStreamTracks provided, if a corresponding +LocalAudioTrack or LocalVideoTrack has not yet been +published, this method will construct one

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Throws:
+ + + +
+ + +TypeError + + + + +
+ + + + + +
Returns:
+ + +
+ +
+ + + +
+
+ Type +
+
+ +Promise.<Array.<LocalTrackPublication>> + + + +
+
+ + + + + +
+ + + +
+
+

setNetworkQualityConfiguration(networkQualityConfiguration)

+ + +
+
+ + +
+

Sets the NetworkQualityVerbosity for the LocalParticipant and +RemoteParticipants. It does nothing if Network Quality is not enabled +while calling connect.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
networkQualityConfiguration + + +NetworkQualityConfiguration + + + + +

The new +NetworkQualityConfiguration; If either or both of the local and +remote NetworkQualityVerbosity values are absent, then the corresponding +existing values are retained

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
Examples
+ +
// Update verbosity levels for both LocalParticipant and RemoteParticipants
+localParticipant.setNetworkQualityConfiguration({
+  local: 1,
+  remote: 2
+});
+ +
// Update verbosity level for only the LocalParticipant
+localParticipant.setNetworkQualityConfiguration({
+  local: 1
+});
+ 
+ +
// Update verbosity level for only the RemoteParticipants
+localParticipant.setNetworkQualityConfiguration({
+  remote: 2
+});
+ + + +
+ + + +
+
+

setParameters( [encodingParameters])

+ + +
+
+ + + + + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
encodingParameters + + +EncodingParameters + + + + + + + <optional>
+ + + + <nullable>
+ + + +

The new +EncodingParameters; If null, then the bitrate limits are removed; +If not specified, then the existing bitrate limits are preserved

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Throws:
+ + + +
+ + +TypeError + + + + +
+ + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ + + +
+
+

unpublishTrack(track)

+ + +
+
+ + +
+

Stops publishing a LocalTrack to the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalTrack +| + +MediaStreamTrack + + + + +

The LocalTrack +to stop publishing; if a MediaStreamTrack is provided, this method +looks up the corresponding LocalAudioTrack or +LocalVideoTrack to stop publishing

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Throws:
+ + + +
+ + +TypeError + + + + +
+ + + + + +
Returns:
+ + +
+ +
+ + + +
+
+ Type +
+
+ +LocalTrackPublication + + + +
+
+ + + + + +
+ + + +
+
+

unpublishTracks(tracks)

+ + +
+
+ + +
+

Stops publishing multiple LocalTracks to the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
tracks + + +Array.<(LocalTrack|MediaStreamTrack)> + + + + +

The LocalTracks +to stop publishing; for any MediaStreamTracks provided, this method looks +up the corresponding LocalAudioTrack or LocalVideoTrack to +stop publishing

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Throws:
+ + + +
+ + +TypeError + + + + +
+ + + + + +
Returns:
+ + +
+ +
+ + + +
+
+ Type +
+
+ +Array.<LocalTrackPublication> + + + +
+
+ + + + + +
+ +
+ + + + + +

Events

+ +
+ +
+
+

disconnected

+ + +
+
+ + +
+

The Participant has disconnected.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +Participant + + + + +

The Participant that disconnected.

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

networkQualityLevelChanged

+ + +
+
+ + +
+

The Participant's NetworkQualityLevel changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
networkQualityLevel + + +NetworkQualityLevel + + + + + + + + + + +

The new +NetworkQualityLevel

networkQualityStats + + +NetworkQualityStats + + + + + + + + + <nullable>
+ + + +

The NetworkQualityStats +based on which NetworkQualityLevel is calculated, if any

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnected

+ + +
+
+ + +
+

The LocalParticipant has reconnected to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnecting

+ + +
+
+ + +
+

The LocalParticipant is reconnecting to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDimensionsChanged

+ + +
+
+ + +
+

One of the LocalParticipant's LocalVideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack whose dimensions changed

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

A LocalTrack was disabled by the LocalParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalTrack + + + + +

The LocalTrack that was disabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

A LocalTrack was enabled by the LocalParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalTrack + + + + +

The LocalTrack that was enabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackPublicationFailed

+ + +
+
+ + +
+

A LocalTrack failed to publish. Check the error message for more +information. In a Large Group Room (Maximum Participants greater than 50), +this event is raised with a ParticipantMaxTracksExceededError either +when attempting to publish the LocalTrack will exceed the Maximum Published +Tracks limit of 16, or the LocalTrack is part of a set of LocalTracks +which along with the published Tracks exceeds 16.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

A TwilioError explaining why publication +failed

localTrack + + +LocalTrack + + + + +

The LocalTrack that failed to +publish

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackPublished

+ + +
+
+ + +
+

A LocalTrack that was added using LocalParticipant#publishTrack was successfully published. This event +is not raised for LocalTracks added in ConnectOptions.tracks or auto-created within +connect.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +LocalTrackPublication + + + + +

The resulting +LocalTrackPublication for the published LocalTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackStarted

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTracks started.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalTrack + + + + +

The LocalTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackStopped

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTracks stopped, either +because LocalTrack#stop was called or because the underlying +MediaStreamTrack ended).

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalTrack + + + + +

The LocalTrack that stopped

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackWarning

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTrackPublications encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

publication + + +LocalTrackPublication + + + + +

The LocalTrackPublication that encountered the warning.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackWarningsCleared

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTrackPublications cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +LocalTrackPublication + + + + +

The LocalTrackPublication that cleared all warnings.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/LocalTrackPublication.html b/dist/docs/LocalTrackPublication.html new file mode 100644 index 000000000..61825eae6 --- /dev/null +++ b/dist/docs/LocalTrackPublication.html @@ -0,0 +1,1159 @@ + + + + + + + Documentation Class: LocalTrackPublication + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: LocalTrackPublication

+
+ +
+ +

+ LocalTrackPublication +

+ +

A LocalTrackPublication is a LocalTrack that has been +published to a Room.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
isTrackEnabled + + +boolean + + + + +

whether the published LocalTrack +is enabled

kind + + +Track.Kind + + + + +

kind of the published LocalTrack

priority + + +Track.Priority + + + + +

the publish priority of the LocalTrack

track + + +LocalTrack + + + + +

the LocalTrack

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

setPriority(priority)

+ + +
+
+ + +
+

Update the Track.Priority of the published LocalTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
priority + + +Track.Priority + + + + +

the new Track.priority

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Throws:
+ + + +
+ + +RangeError + + + + +
+ + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ + + +
+
+

unpublish()

+ + +
+
+ + +
+

Unpublish a LocalTrackPublication. This means that the media +from this LocalTrackPublication is no longer available to the +Room's RemoteParticipants.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ +
+ + + + + +

Events

+ +
+ +
+
+

trackDisabled

+ + +
+
+ + +
+

The published Track was disabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The published Track was enabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warning

+ + +
+
+ + +
+

The published LocalTrack encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warningsCleared

+ + +
+
+ + +
+

The published LocalTrack cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/LocalTrackStats.html b/dist/docs/LocalTrackStats.html new file mode 100644 index 000000000..d40c8b395 --- /dev/null +++ b/dist/docs/LocalTrackStats.html @@ -0,0 +1,486 @@ + + + + + + + Documentation Class: LocalTrackStats + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: LocalTrackStats

+
+ +
+ +

+ LocalTrackStats +

+ +

Statistics for a LocalTrack.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
bytesSent + + +number + + + + + + + + + <nullable>
+ +

Number of bytes sent

packetsSent + + +number + + + + + + + + + <nullable>
+ +

Number of packets sent

roundTripTime + + +number + + + + + + + + + <nullable>
+ +

Round trip time in milliseconds

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/LocalVideoTrack.html b/dist/docs/LocalVideoTrack.html new file mode 100644 index 000000000..f26cf8304 --- /dev/null +++ b/dist/docs/LocalVideoTrack.html @@ -0,0 +1,2852 @@ + + + + + + + Documentation Class: LocalVideoTrack + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: LocalVideoTrack

+
+ +
+ +

+ LocalVideoTrack +

+ +

A LocalVideoTrack is a VideoTrack representing video that +your LocalParticipant can publish to a Room. It can be +enabled and disabled with LocalVideoTrack#enable and +LocalVideoTrack#disable or stopped completely with +LocalVideoTrack#stop.

+ + +
+ + +
+
+ + +
+
+

new Twilio.Video.LocalVideoTrack(mediaStreamTrack [, options])

+ + +
+
+ + +
+

Construct a LocalVideoTrack from a MediaStreamTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
mediaStreamTrack + + +MediaStreamTrack + + + + + + + + + + +

The underlying MediaStreamTrack

options + + +LocalTrackOptions + + + + + + + <optional>
+ + + + + +

LocalTrack options

+ + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
id + + +Track.ID + + + + +

The LocalVideoTrack's ID

isMuted + + +boolean + + + + +

Whether or not the video source has stopped sending frames to the +LocalVideoTrack; This can happen when the camera is taken over by another application, +mainly on mobile devices; When this property toggles, then muted and unmuted +events are fired appropriately

isStopped + + +boolean + + + + +

Whether or not the LocalVideoTrack is +stopped

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

addProcessor(processor [, options])

+ + +
+
+ + +
+

Add a VideoProcessor to allow for custom processing of video frames belonging to a VideoTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
processor + + +VideoProcessor + + + + + + + + + + +

The VideoProcessor to use.

options + + +AddProcessorOptions + + + + + + + <optional>
+ + + + + +

AddProcessorOptions to provide.

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
Example
+ +
class GrayScaleProcessor {
+  constructor(percentage) {
+    this.percentage = percentage;
+  }
+  processFrame(inputFrameBuffer, outputFrameBuffer) {
+    const context = outputFrameBuffer.getContext('2d');
+    context.filter = `grayscale(${this.percentage}%)`;
+    context.drawImage(inputFrameBuffer, 0, 0, inputFrameBuffer.width, inputFrameBuffer.height);
+  }
+}
+
+const localVideoTrack = Array.from(room.localParticipant.videoTracks.values())[0].track;
+localVideoTrack.addProcessor(new GrayScaleProcessor(100));
+ + + +
+ + + +
+
+

attach()

+ + +
+
+ + +
+

Create an HTMLVideoElement and attach the VideoTrack to it.

+

The HTMLVideoElement's srcObject will be set to a new +MediaStream containing the VideoTrack's MediaStreamTrack.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+

videoElement

+
+ + + +
+
+ Type +
+
+ +HTMLVideoElement + + + +
+
+ + + + + +
Example
+ +
const Video = require('twilio-video');
+
+Video.createLocalVideoTrack().then(function(videoTrack) {
+  const videoElement = videoTrack.attach();
+  document.body.appendChild(videoElement);
+});
+  
+ + + +
+ + + +
+
+

detach()

+ + +
+
+ + +
+

Detach the VideoTrack from all previously attached HTMLMediaElements.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+

mediaElements

+
+ + + +
+
+ Type +
+
+ +Array.<HTMLMediaElement> + + + +
+
+ + + + + +
Example
+ +
const mediaElements = videoTrack.detach();
+mediaElements.forEach(mediaElement => mediaElement.remove());
+  
+ + + +
+ + + +
+
+

disable()

+ + +
+
+ + +
+

Disable the LocalVideoTrack. This is equivalent to pausing a video source. +If a VideoProcessor is added, then processedTrack is also disabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ + + +
+
+

enable()

+ + +
+
+ + +
+

Enable the LocalVideoTrack. This is equivalent to unpausing the video source. +If a VideoProcessor is added, then processedTrack is also enabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ + + +
+
+

enable( [enabled])

+ + +
+
+ + +
+

Enable or disable the LocalVideoTrack. This is equivalent to unpausing or pausing +the video source respectively. If a VideoProcessor is added, then processedTrack +is also enabled or disabled.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDefaultDescription
enabled + + +boolean + + + + + + + <optional>
+ + + + + +
+ + true + +

Specify false to disable the +LocalVideoTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ + + +
+
+

removeProcessor(processor)

+ + +
+
+ + +
+

Remove the previously added VideoProcessor using addProcessor API.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
processor + + +VideoProcessor + + + + +

The VideoProcessor to remove.

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
Example
+ +
class GrayScaleProcessor {
+  constructor(percentage) {
+    this.percentage = percentage;
+  }
+  processFrame(inputFrameBuffer, outputFrameBuffer) {
+    const context = outputFrameBuffer.getContext('2d');
+    context.filter = `grayscale(${this.percentage}%)`;
+    context.drawImage(inputFrameBuffer, 0, 0, inputFrameBuffer.width, inputFrameBuffer.height);
+  }
+}
+
+const localVideoTrack = Array.from(room.localParticipant.videoTracks.values())[0].track;
+const grayScaleProcessor = new GrayScaleProcessor(100);
+localVideoTrack.addProcessor(grayScaleProcessor);
+
+document.getElementById('remove-button').onclick = () => localVideoTrack.removeProcessor(grayScaleProcessor);
+ + + +
+ + + +
+
+

restart( [constraints])

+ + +
+
+ + +
+

Restart the LocalVideoTrack. This stops the existing MediaStreamTrack +and creates a new MediaStreamTrack. If the LocalVideoTrack is being published +to a Room, then all the RemoteParticipants will start receiving media +from the newly created MediaStreamTrack. You can access the new MediaStreamTrack via +the mediaStreamTrack property. If you want to listen to events on +the MediaStreamTrack directly, please do so in the "started" event handler. Also, +the LocalVideoTrack's ID is no longer guaranteed to be the same as the +underlying MediaStreamTrack's ID.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
constraints + + +MediaTrackConstraints + + + + + + + <optional>
+ + + + + +

The optional MediaTrackConstraints +for restarting the LocalVideoTrack; If not specified, then the current MediaTrackConstraints +will be used; If {} (empty object) is specified, then the default MediaTrackConstraints +will be used

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + +
Returns:
+ + +
+

Rejects with a TypeError if the LocalVideoTrack was not created +using an one of createLocalVideoTrack, createLocalTracks or connect; +Also rejects with the DOMException +raised by getUserMedia when it fails

+
+ + + +
+
+ Type +
+
+ +Promise.<void> + + + +
+
+ + + + + +
Example
+ +
const { connect, createLocalVideoTrack } = require('twilio-video');
+
+// Create a LocalVideoTrack that captures video from the front-facing camera.
+createLocalVideoTrack({ facingMode: 'user' }).then(function(localVideoTrack) {
+  return connect('token', {
+    name: 'my-cool-room',
+    tracks: [localVideoTrack]
+  });
+}).then(function(room) {
+  // Restart the LocalVideoTrack to capture video from the back-facing camera.
+  const localVideoTrack = Array.from(room.localParticipant.videoTracks.values())[0].track;
+  return localVideoTrack.restart({ facingMode: 'environment' });
+});
+ + + +
+ + + +
+
+

stop()

+ + +
+
+ + +
+

Calls stop on the underlying MediaStreamTrack. If you choose to stop a +LocalVideoTrack, you should unpublish it after stopping.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ +
+ + + + + +

Events

+ +
+ +
+
+

dimensionsChanged

+ + +
+
+ + +
+

The VideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack whose dimensions changed

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disabled

+ + +
+
+ + +
+

The LocalVideoTrack was disabled, i.e. the video source was paused by the user.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that was +disabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The LocalVideoTrack was enabled, i.e. the video source was unpaused by the user.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that was enabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

muted

+ + +
+
+ + +
+

The LocalVideoTrack was muted because the video source stopped sending frames, most +likely due to another application taking said video source, especially on mobile devices.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that was muted

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The LocalVideoTrack started. This means there is enough video data +to begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

stopped

+ + +
+
+ + +
+

The LocalVideoTrack stopped, either because LocalVideoTrack#stop +or LocalVideoTrack#restart was called or because the underlying +MediaStreamTrack ended.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that stopped

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unmuted

+ + +
+
+ + +
+

The LocalVideoTrack was unmuted because the video source resumed sending frames, +most likely due to the application that took over the said video source has released it +back to the application, especially on mobile devices. This event is also fired when +LocalVideoTrack#restart is called on a muted LocalVideoTrack with a +new video source.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that was unmuted

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/LocalVideoTrackPublication.html b/dist/docs/LocalVideoTrackPublication.html new file mode 100644 index 000000000..54603e835 --- /dev/null +++ b/dist/docs/LocalVideoTrackPublication.html @@ -0,0 +1,1159 @@ + + + + + + + Documentation Class: LocalVideoTrackPublication + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: LocalVideoTrackPublication

+
+ +
+ +

+ LocalVideoTrackPublication +

+ +

A LocalVideoTrackPublication is a LocalVideoTrack that has +been published to a Room.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
kind + + +Track.Kind + + + + +

"video"

track + + +LocalVideoTrack + + + + +

the LocalVideoTrack

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

setPriority(priority)

+ + +
+
+ + +
+

Update the Track.Priority of the published LocalTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
priority + + +Track.Priority + + + + +

the new Track.priority

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Throws:
+ + + +
+ + +RangeError + + + + +
+ + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ + + +
+
+

unpublish()

+ + +
+
+ + +
+

Unpublish a LocalTrackPublication. This means that the media +from this LocalTrackPublication is no longer available to the +Room's RemoteParticipants.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ +
+ + + + + +

Events

+ +
+ +
+
+

trackDisabled

+ + +
+
+ + +
+

The published Track was disabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The published Track was enabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warning

+ + +
+
+ + +
+

The published LocalTrack encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warningsCleared

+ + +
+
+ + +
+

The published LocalTrack cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/LocalVideoTrackStats.html b/dist/docs/LocalVideoTrackStats.html new file mode 100644 index 000000000..5eef84b63 --- /dev/null +++ b/dist/docs/LocalVideoTrackStats.html @@ -0,0 +1,518 @@ + + + + + + + Documentation Class: LocalVideoTrackStats + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: LocalVideoTrackStats

+
+ +
+ +

+ LocalVideoTrackStats +

+ +

Statistics for a LocalVideoTrack.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
captureDimensions + + +VideoTrack#Dimensions + + + + + + + + + <nullable>
+ +

Video capture resolution

dimensions + + +VideoTrack#Dimensions + + + + + + + + + <nullable>
+ +

Video encoding resolution

captureFrameRate + + +number + + + + + + + + + <nullable>
+ +

Video capture frame rate

frameRate + + +number + + + + + + + + + <nullable>
+ +

Video encoding frame rate

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/MediaClientLocalDescFailedError.html b/dist/docs/MediaClientLocalDescFailedError.html new file mode 100644 index 000000000..881cc8405 --- /dev/null +++ b/dist/docs/MediaClientLocalDescFailedError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: MediaClientLocalDescFailedError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: MediaClientLocalDescFailedError

+
+ +
+ +

+ MediaClientLocalDescFailedError +

+ +

Raised whenever a Client is unable to create or apply a local media description.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53400

message + + +string + + + + +

'Client is unable to create or apply a local media description'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/MediaClientRemoteDescFailedError.html b/dist/docs/MediaClientRemoteDescFailedError.html new file mode 100644 index 000000000..471e76474 --- /dev/null +++ b/dist/docs/MediaClientRemoteDescFailedError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: MediaClientRemoteDescFailedError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: MediaClientRemoteDescFailedError

+
+ +
+ +

+ MediaClientRemoteDescFailedError +

+ +

Raised whenever the Client receives a remote media description but is unable to apply it.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53402

message + + +string + + + + +

'Client is unable to apply a remote media description'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/MediaConnectionError.html b/dist/docs/MediaConnectionError.html new file mode 100644 index 000000000..b4e27316a --- /dev/null +++ b/dist/docs/MediaConnectionError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: MediaConnectionError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: MediaConnectionError

+
+ +
+ +

+ MediaConnectionError +

+ +

Raised by the Client or Server whenever a media connection fails or raised by the Client whenever it detects that media has stopped flowing.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53405

message + + +string + + + + +

'Media connection failed or Media activity ceased'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/MediaDTLSTransportFailedError.html b/dist/docs/MediaDTLSTransportFailedError.html new file mode 100644 index 000000000..8a9dfd486 --- /dev/null +++ b/dist/docs/MediaDTLSTransportFailedError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: MediaDTLSTransportFailedError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: MediaDTLSTransportFailedError

+
+ +
+ +

+ MediaDTLSTransportFailedError +

+ +

There was a problem while negotiating with the remote DTLS peer. Therefore the Participant will not be able to publish or subscribe to Tracks.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53407

message + + +string + + + + +

'Media connection failed due to DTLS handshake failure'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/MediaNoSupportedCodecError.html b/dist/docs/MediaNoSupportedCodecError.html new file mode 100644 index 000000000..613511a52 --- /dev/null +++ b/dist/docs/MediaNoSupportedCodecError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: MediaNoSupportedCodecError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: MediaNoSupportedCodecError

+
+ +
+ +

+ MediaNoSupportedCodecError +

+ +

Raised whenever the intersection of codecs supported by the Client and the Server (or, in peer-to-peer, the Client and another Participant) is empty.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53404

message + + +string + + + + +

'No supported codec'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/MediaServerLocalDescFailedError.html b/dist/docs/MediaServerLocalDescFailedError.html new file mode 100644 index 000000000..0c9ecd75c --- /dev/null +++ b/dist/docs/MediaServerLocalDescFailedError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: MediaServerLocalDescFailedError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: MediaServerLocalDescFailedError

+
+ +
+ +

+ MediaServerLocalDescFailedError +

+ +

Raised whenever the Server is unable to create or apply a local media description.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53401

message + + +string + + + + +

'Server is unable to create or apply a local media description'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/MediaServerRemoteDescFailedError.html b/dist/docs/MediaServerRemoteDescFailedError.html new file mode 100644 index 000000000..c1eb60d77 --- /dev/null +++ b/dist/docs/MediaServerRemoteDescFailedError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: MediaServerRemoteDescFailedError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: MediaServerRemoteDescFailedError

+
+ +
+ +

+ MediaServerRemoteDescFailedError +

+ +

Raised whenever the Server receives a remote media description but is unable to apply it.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53403

message + + +string + + + + +

'Server is unable to apply a remote media description'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/NetworkQualityAudioStats.html b/dist/docs/NetworkQualityAudioStats.html new file mode 100644 index 000000000..e59bbcc36 --- /dev/null +++ b/dist/docs/NetworkQualityAudioStats.html @@ -0,0 +1,350 @@ + + + + + + + Documentation Class: NetworkQualityAudioStats + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: NetworkQualityAudioStats

+
+ +
+ +

+ NetworkQualityAudioStats +

+ + + + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/NetworkQualityBandwidthStats.html b/dist/docs/NetworkQualityBandwidthStats.html new file mode 100644 index 000000000..d6a45de9e --- /dev/null +++ b/dist/docs/NetworkQualityBandwidthStats.html @@ -0,0 +1,477 @@ + + + + + + + Documentation Class: NetworkQualityBandwidthStats + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: NetworkQualityBandwidthStats

+
+ +
+ +

+ NetworkQualityBandwidthStats +

+ +

Bandwidth network quality statistics.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
actual + + +number + + + + + + + + + <nullable>
+ +

the actual bandwidth used, in bits per second

available + + +number + + + + + + + + + <nullable>
+ +

an estimate of available useable bandwidth, in bits per second

level + + +NetworkQualityLevel + + + + + + + + + <nullable>
+ +

NetworkQualityLevel for bandwidth

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/NetworkQualityFractionLostStats.html b/dist/docs/NetworkQualityFractionLostStats.html new file mode 100644 index 000000000..64bea23dd --- /dev/null +++ b/dist/docs/NetworkQualityFractionLostStats.html @@ -0,0 +1,445 @@ + + + + + + + Documentation Class: NetworkQualityFractionLostStats + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: NetworkQualityFractionLostStats

+
+ +
+ +

+ NetworkQualityFractionLostStats +

+ +

Fraction lost network quality statistics.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
fractionLost + + +number + + + + + + + + + <nullable>
+ +

packets lost

level + + +NetworkQualityLevel + + + + + + + + + <nullable>
+ +

NetworkQualityLevel for fraction lost

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/NetworkQualityLatencyStats.html b/dist/docs/NetworkQualityLatencyStats.html new file mode 100644 index 000000000..c9264c1b5 --- /dev/null +++ b/dist/docs/NetworkQualityLatencyStats.html @@ -0,0 +1,477 @@ + + + + + + + Documentation Class: NetworkQualityLatencyStats + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: NetworkQualityLatencyStats

+
+ +
+ +

+ NetworkQualityLatencyStats +

+ +

Latency network quality statistics.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
jitter + + +number + + + + + + + + + <nullable>
+ +

media jitter in seconds

rtt + + +number + + + + + + + + + <nullable>
+ +

round trip time in seconds

level + + +NetworkQualityLevel + + + + + + + + + <nullable>
+ +

NetworkQualityLevel for latency

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/NetworkQualityMediaStats.html b/dist/docs/NetworkQualityMediaStats.html new file mode 100644 index 000000000..83b448804 --- /dev/null +++ b/dist/docs/NetworkQualityMediaStats.html @@ -0,0 +1,511 @@ + + + + + + + Documentation Class: NetworkQualityMediaStats + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: NetworkQualityMediaStats

+
+ +
+ +

+ NetworkQualityMediaStats +

+ +

Network quality statistics shared between a Participant's audio or video.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
send + + +NetworkQualityLevel + + + + + + + + +

NetworkQualityLevel of the +Participant's published audio or video

recv + + +number + + + + + + + + +

NetworkQualityLevel of the +Participant's subscribed audio or video

sendStats + + +NetworkQualitySendOrRecvStats + + + + + + + + + <nullable>
+ +

NetworkQualitySendOrRecvStats +based on which NetworkQualityMediaStats#send +is calculated

recvStats + + +NetworkQualitySendOrRecvStats + + + + + + + + + <nullable>
+ +

NetworkQualitySendOrRecvStats +based on which NetworkQualityMediaStats#recv +is calculated

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/NetworkQualityRecvStats.html b/dist/docs/NetworkQualityRecvStats.html new file mode 100644 index 000000000..251272e0d --- /dev/null +++ b/dist/docs/NetworkQualityRecvStats.html @@ -0,0 +1,351 @@ + + + + + + + Documentation Class: NetworkQualityRecvStats + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: NetworkQualityRecvStats

+
+ +
+ +

+ NetworkQualityRecvStats +

+ + + + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/NetworkQualitySendOrRecvStats.html b/dist/docs/NetworkQualitySendOrRecvStats.html new file mode 100644 index 000000000..4c71b047e --- /dev/null +++ b/dist/docs/NetworkQualitySendOrRecvStats.html @@ -0,0 +1,480 @@ + + + + + + + Documentation Class: NetworkQualitySendOrRecvStats + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: NetworkQualitySendOrRecvStats

+
+ +
+ +

+ NetworkQualitySendOrRecvStats +

+ +

Network quality statistics shared between NetworkQualitySendStats and +NetworkQualityRecvStats based on which a Participant's +NetworkQualityMediaStats#send or +NetworkQualityMediaStats#recv is calculated.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
bandwidth + + +NetworkQualityBandwidthStats + + + + + + + + + <nullable>
+ +

bandwidth statistics

latency + + +NetworkQualityLatencyStats + + + + + + + + + <nullable>
+ +

latency statistics

fractionLost + + +NetworkQualityFractionLostStats + + + + + + + + + <nullable>
+ +

fraction lost statistics

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/NetworkQualitySendStats.html b/dist/docs/NetworkQualitySendStats.html new file mode 100644 index 000000000..381464e6e --- /dev/null +++ b/dist/docs/NetworkQualitySendStats.html @@ -0,0 +1,351 @@ + + + + + + + Documentation Class: NetworkQualitySendStats + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: NetworkQualitySendStats

+
+ +
+ +

+ NetworkQualitySendStats +

+ + + + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/NetworkQualityStats.html b/dist/docs/NetworkQualityStats.html new file mode 100644 index 000000000..db394394e --- /dev/null +++ b/dist/docs/NetworkQualityStats.html @@ -0,0 +1,479 @@ + + + + + + + Documentation Class: NetworkQualityStats + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: NetworkQualityStats

+
+ +
+ +

+ NetworkQualityStats +

+ +

Network quality statistics for a Participant.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
level + + +NetworkQualityLevel + + + + + + + + +

NetworkQualityLevel of the Participant

audio + + +NetworkQualityAudioStats + + + + + + + + + <nullable>
+ +

NetworkQualityMediaStats +for audio; null if NetworkQualityVerbosity is NetworkQualityVerbosity#minimal +or below

video + + +NetworkQualityVideoStats + + + + + + + + + <nullable>
+ +

NetworkQualityMediaStats +for video; null if NetworkQualityVerbosity is NetworkQualityVerbosity#minimal +or below

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/NetworkQualityVideoStats.html b/dist/docs/NetworkQualityVideoStats.html new file mode 100644 index 000000000..51f0007bf --- /dev/null +++ b/dist/docs/NetworkQualityVideoStats.html @@ -0,0 +1,350 @@ + + + + + + + Documentation Class: NetworkQualityVideoStats + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: NetworkQualityVideoStats

+
+ +
+ +

+ NetworkQualityVideoStats +

+ + + + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/NoiseCancellation.html b/dist/docs/NoiseCancellation.html new file mode 100644 index 000000000..388a277b1 --- /dev/null +++ b/dist/docs/NoiseCancellation.html @@ -0,0 +1,820 @@ + + + + + + + Documentation Interface: NoiseCancellation + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Interface: NoiseCancellation

+
+ +
+ +

+ NoiseCancellation +

+ +

NoiseCancellation interface provides methods to control noise cancellation at runtime. This interface is exposed +on LocalAudioTrack property noiseCancellation. It is available only when NoiseCancellationOptions are +specified when creating a LocalAudioTrack, and the plugin is successfully loaded.

+ + +
+ + +
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +

Example

+ +
const { connect, createLocalAudioTrack } = require('twilio-video');
+
+// Create a LocalAudioTrack with Krisp noise cancellation enabled.
+const localAudioTrack = await createLocalAudioTrack({
+  noiseCancellationOptions: {
+    sdkAssetsPath: 'path/to/hosted/twilio/krisp/audio/plugin/1.0.0/dist',
+    vendor: 'krisp'
+  }
+});
+
+if (!localAudioTrack.noiseCancellation) {
+  // If the Krisp audio plugin fails to load, then a warning message will be logged
+  // in the browser console, and the "noiseCancellation" property will be set to null.
+  // You can still use the LocalAudioTrack to join a Room. However, it will use the
+  // browser's noise suppression instead of the Krisp noise cancellation. Make sure
+  // the "sdkAssetsPath" provided in "noiseCancellationOptions" points to the correct
+  // hosted path of the plugin assets.
+} else {
+  // Join a Room with the LocalAudioTrack.
+  const room = await connect('token', {
+    name: 'my-cool-room',
+    tracks: [localAudioTrack]
+  });
+
+  if (!localAudioTrack.noiseCancellation.isEnabled) {
+    // Krisp noise cancellation is permanently disabled in Peer-to-Peer and Go Rooms.
+  }
+}
+
+//
+// Enable/disable noise cancellation.
+// @param {boolean} enable - whether noise cancellation should be enabled
+//
+function setNoiseCancellation(enable) {
+  const { noiseCancellation } = localAudioTrack;
+  if (noiseCancellation) {
+    if (enable) {
+      // If enabled, then the LocalAudioTrack will use the Krisp noise
+      // cancellation instead of the browser's noise suppression.
+      noiseCancellation.enable();
+    } else {
+      // If disabled, then the LocalAudioTrack will use the browser's
+      // noise suppression instead of the Krisp noise cancellation.
+      noiseCancellation.disable();
+    }
+  }
+}
+ + + + +
+ + + + + + + + + + + + +

Members

+ +
+ +
+
+

isEnabled :boolean

+ + +
+
+ +
+

Whether noise cancellation is enabled.

+
+ + + +
Type:
+
    +
  • + +boolean + + + +
  • +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

sourceTrack :MediaStreamTrack

+ + +
+
+ +
+

The underlying MediaStreamTrack of the LocalAudioTrack.

+
+ + + +
Type:
+
    +
  • + +MediaStreamTrack + + + +
  • +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

vendor :NoiseCancellationVendor

+ + +
+
+ +
+

Name of the noise cancellation vendor.

+
+ + + +
Type:
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+ + + +

Methods

+ +
+ +
+
+

disable()

+ + +
+
+ + +
+

Disable noise cancellation.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+

Promise that resolves when the operation is complete

+
+ + + +
+
+ Type +
+
+ +Promise.<void> + + + +
+
+ + + + + +
+ + + +
+
+

enable()

+ + +
+
+ + +
+

Enable noise cancellation.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Throws:
+ + + +
+
+
+

Throws an error if noise cancellation is disabled permanently +for the LocalAudioTrack

+
+
+
+
+
+ Type +
+
+ +Error + + + +
+
+
+
+ + + + + +
Returns:
+ + +
+

Promise that resolves when the operation is complete

+
+ + + +
+
+ Type +
+
+ +Promise.<void> + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/Participant.html b/dist/docs/Participant.html new file mode 100644 index 000000000..6151a14d2 --- /dev/null +++ b/dist/docs/Participant.html @@ -0,0 +1,1547 @@ + + + + + + + Documentation Class: Participant + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: Participant

+
+ +
+ +

+ Participant +

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
audioTracks + + +Map.<Track.SID, AudioTrackPublication> + + + + + + + + +

The Participant's AudioTrackPublications

dataTracks + + +Map.<Track.SID, DataTrackPublication> + + + + + + + + +

The Participant's DataTrackPublications.

identity + + +Participant.Identity + + + + + + + + +

The identity of the Participant

networkQualityLevel + + +NetworkQualityLevel + + + + + + + + + <nullable>
+ +

The +Participant's current NetworkQualityLevel, if any

networkQualityStats + + +NetworkQualityStats + + + + + + + + + <nullable>
+ +

The +Participant's current NetworkQualityStats, if any

sid + + +Participant.SID + + + + + + + + +

The Participant's SID

state + + +string + + + + + + + + +

"connected", "disconnected" or "reconnecting"

tracks + + +Map.<Track.SID, TrackPublication> + + + + + + + + +

The Participant's TrackPublications

videoTracks + + +Map.<Track.SID, VideoTrackPublication> + + + + + + + + +

The Participant's VideoTrackPublications

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + +
    +
  • EventEmitter
  • +
+ + + + + + + + + + + + + + + + + +

Type Definitions

+ +
+ +
+
+

Identity

+ + +
+
+ +
+

A Participant.Identity is a string that identifies a +Participant. You can think of it like a name.

+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

SID

+ + +
+
+ +
+

A Participant.SID is a 34-character string starting with "PA" +that uniquely identifies a Participant.

+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+ + + +

Events

+ +
+ +
+
+

disconnected

+ + +
+
+ + +
+

The Participant has disconnected.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +Participant + + + + +

The Participant that disconnected.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

networkQualityLevelChanged

+ + +
+
+ + +
+

The Participant's NetworkQualityLevel changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
networkQualityLevel + + +NetworkQualityLevel + + + + + + + + + + +

The new +NetworkQualityLevel

networkQualityStats + + +NetworkQualityStats + + + + + + + + + <nullable>
+ + + +

The NetworkQualityStats +based on which NetworkQualityLevel is calculated, if any

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnected

+ + +
+
+ + +
+

The Participant has reconnected to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnecting

+ + +
+
+ + +
+

The Participant is reconnecting to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDimensionsChanged

+ + +
+
+ + +
+

One of the Participant's VideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack whose dimensions changed

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackStarted

+ + +
+
+ + +
+

One of the Participant's Tracks started.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +Track + + + + +

The Track that started

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/ParticipantDuplicateIdentityError.html b/dist/docs/ParticipantDuplicateIdentityError.html new file mode 100644 index 000000000..755182666 --- /dev/null +++ b/dist/docs/ParticipantDuplicateIdentityError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: ParticipantDuplicateIdentityError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: ParticipantDuplicateIdentityError

+
+ +
+ +

+ ParticipantDuplicateIdentityError +

+ +

Raised by the server to the existing Participant when a new Participant joins a Room with the same identity as the existing Participant.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53205

message + + +string + + + + +

'Participant disconnected because of duplicate identity'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/ParticipantIdentityCharsInvalidError.html b/dist/docs/ParticipantIdentityCharsInvalidError.html new file mode 100644 index 000000000..f6016530c --- /dev/null +++ b/dist/docs/ParticipantIdentityCharsInvalidError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: ParticipantIdentityCharsInvalidError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: ParticipantIdentityCharsInvalidError

+
+ +
+ +

+ ParticipantIdentityCharsInvalidError +

+ +

Raised whenever a Participant identity contains invalid characters.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53202

message + + +string + + + + +

'Participant identity contains invalid characters'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/ParticipantIdentityInvalidError.html b/dist/docs/ParticipantIdentityInvalidError.html new file mode 100644 index 000000000..9ec9a568f --- /dev/null +++ b/dist/docs/ParticipantIdentityInvalidError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: ParticipantIdentityInvalidError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: ParticipantIdentityInvalidError

+
+ +
+ +

+ ParticipantIdentityInvalidError +

+ +

Raised whenever a Participant identity is invalid, and the scenario is not covered by a more specific error code.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53200

message + + +string + + + + +

'Participant identity is invalid'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/ParticipantIdentityTooLongError.html b/dist/docs/ParticipantIdentityTooLongError.html new file mode 100644 index 000000000..cae8035e9 --- /dev/null +++ b/dist/docs/ParticipantIdentityTooLongError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: ParticipantIdentityTooLongError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: ParticipantIdentityTooLongError

+
+ +
+ +

+ ParticipantIdentityTooLongError +

+ +

Raised whenever a Participant identity is too long.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53201

message + + +string + + + + +

'Participant identity is too long'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/ParticipantMaxTracksExceededError.html b/dist/docs/ParticipantMaxTracksExceededError.html new file mode 100644 index 000000000..c00f9b9ca --- /dev/null +++ b/dist/docs/ParticipantMaxTracksExceededError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: ParticipantMaxTracksExceededError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: ParticipantMaxTracksExceededError

+
+ +
+ +

+ ParticipantMaxTracksExceededError +

+ +

Raised whenever a Participant tries to publish a Track and the maximum number of published tracks allowed in the Room at the same time has been reached

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53203

message + + +string + + + + +

'The maximum number of published tracks allowed in the Room at the same time has been reached'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/ParticipantNotFoundError.html b/dist/docs/ParticipantNotFoundError.html new file mode 100644 index 000000000..bd1a0c12c --- /dev/null +++ b/dist/docs/ParticipantNotFoundError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: ParticipantNotFoundError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: ParticipantNotFoundError

+
+ +
+ +

+ ParticipantNotFoundError +

+ +

Raised whenever attempting an operation on a non-existent Participant.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53204

message + + +string + + + + +

'Participant not found'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/PreflightTest.html b/dist/docs/PreflightTest.html new file mode 100644 index 000000000..600033b0a --- /dev/null +++ b/dist/docs/PreflightTest.html @@ -0,0 +1,871 @@ + + + + + + + Documentation Class: PreflightTest + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: PreflightTest

+
+ +
+ +

+ PreflightTest +

+ +

A PreflightTest monitors progress of an ongoing preflight test. +

+Instance of PreflightTest is returned by calling module:twilio-video.runPreflight

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + +
    +
  • EventEmitter
  • +
+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

stop()

+ + +
+
+ + +
+

stops ongoing tests and emits error

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ + + + + +

Events

+ +
+ +
+
+

completed

+ + +
+
+ + +
+

Preflight test has completed successfully.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
report + + +PreflightTestReport + + + + +

Results of the test.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

failed

+ + +
+
+ + +
+

Preflight test has encountered a failure and is now stopped.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError +| + +Error + + + + +

A TwilioError or a DOMException. +Possible TwilioErrors include Signaling and Media related errors which can be found +here.

report + + +PreflightTestReport + + + + +

Partial results gathered during the test. Use this information to help determine the cause of failure.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

progress

+ + +
+
+ + +
+

Emitted to indicate progress of the test

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
progress + + +PreflightProgress + + + + +

Indicates the status completed.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RemoteAudioTrack.html b/dist/docs/RemoteAudioTrack.html new file mode 100644 index 000000000..4ef89c85e --- /dev/null +++ b/dist/docs/RemoteAudioTrack.html @@ -0,0 +1,1627 @@ + + + + + + + Documentation Class: RemoteAudioTrack + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RemoteAudioTrack

+
+ +
+ +

+ RemoteAudioTrack +

+ +

A RemoteAudioTrack represents an AudioTrack published to a +Room by a RemoteParticipant.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
isEnabled + + +boolean + + + + + + + + +

Whether the RemoteAudioTrack is enabled

isSwitchedOff + + +boolean + + + + + + + + +

Whether the RemoteAudioTrack is switched off

sid + + +Track.SID + + + + + + + + +

The RemoteAudioTrack's SID

priority + + +Track.Priority + + + + + + + + + <nullable>
+ +

The subscribe priority of the RemoteAudioTrack

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

attach()

+ + +
+
+ + +
+

Create an HTMLAudioElement and attach the AudioTrack to it.

+

The HTMLAudioElement's srcObject will be set to a new +MediaStream containing the AudioTrack's MediaStreamTrack.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+

audioElement

+
+ + + +
+
+ Type +
+
+ +HTMLAudioElement + + + +
+
+ + + + + +
Example
+ +
const Video = require('twilio-video');
+
+Video.createLocalAudioTrack().then(function(audioTrack) {
+  const audioElement = audioTrack.attach();
+  document.body.appendChild(audioElement);
+});
+  
+ + + +
+ + + +
+
+

detach()

+ + +
+
+ + +
+

Detach the AudioTrack from all previously attached HTMLMediaElements.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+

mediaElements

+
+ + + +
+
+ Type +
+
+ +Array.<HTMLMediaElement> + + + +
+
+ + + + + +
Example
+ +
const mediaElements = audioTrack.detach();
+mediaElements.forEach(mediaElement => mediaElement.remove());
+  
+ + + +
+ + + +
+
+

setPriority(priority)

+ + +
+
+ + +
+

Update the subscribe Track.Priority of the RemoteAudioTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
priority + + +Track.Priority + + + + + + + + + <nullable>
+ + + +

the new subscribe Track.Priority; +Currently setPriority has no effect on audio tracks.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Throws:
+ + + +
+ + +RangeError + + + + +
+ + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ +
+ + + + + +

Events

+ +
+ +
+
+

disabled

+ + +
+
+ + +
+

The RemoteAudioTrack was disabled, i.e. "muted".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

The RemoteAudioTrack that was +disabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The RemoteAudioTrack was enabled, i.e. "unmuted".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

The RemoteAudioTrack that was +enabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The RemoteAudioTrack started. This means there is enough audio data +to begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

The RemoteAudioTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOff

+ + +
+
+ + +
+

A RemoteAudioTrack was switched off.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

The RemoteAudioTrack that was +switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOn

+ + +
+
+ + +
+

A RemoteAudioTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

The RemoteAudioTrack that was +switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RemoteAudioTrackPublication.html b/dist/docs/RemoteAudioTrackPublication.html new file mode 100644 index 000000000..12f029b65 --- /dev/null +++ b/dist/docs/RemoteAudioTrackPublication.html @@ -0,0 +1,1003 @@ + + + + + + + Documentation Class: RemoteAudioTrackPublication + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RemoteAudioTrackPublication

+
+ +
+ +

+ RemoteAudioTrackPublication +

+ +

A RemoteAudioTrackPublication represents a RemoteAudioTrack +that has been published to a Room.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
kind + + +Track.Kind + + + + + + + + +

"audio"

track + + +RemoteAudioTrack + + + + + + + + + <nullable>
+ +

unless you have subscribed to the +RemoteAudioTrack, this property is null

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +

Events

+ +
+ +
+
+

subscribed

+ + +
+
+ + +
+

Your LocalParticipant subscribed to the RemoteAudioTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

the RemoteAudioTrack that was subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscriptionFailed

+ + +
+
+ + +
+

Your LocalParticipant failed to subscribe to the RemoteAudioTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

the reason the RemoteAudioTrack could not be +subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The RemoteAudioTrack was disabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The RemoteAudioTrack was enabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unsubscribed

+ + +
+
+ + +
+

Your LocalParticipant unsubscribed from the RemoteAudioTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

the RemoteAudioTrack that was unsubscribed from

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RemoteAudioTrackStats.html b/dist/docs/RemoteAudioTrackStats.html new file mode 100644 index 000000000..c225c9111 --- /dev/null +++ b/dist/docs/RemoteAudioTrackStats.html @@ -0,0 +1,454 @@ + + + + + + + Documentation Class: RemoteAudioTrackStats + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RemoteAudioTrackStats

+
+ +
+ +

+ RemoteAudioTrackStats +

+ +

Statistics for an AudioTrack.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
audioLevel + + +AudioLevel + + + + + + + + + <nullable>
+ +

Output AudioLevel

jitter + + +number + + + + + + + + + <nullable>
+ +

Audio jitter in milliseconds

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RemoteDataTrack.html b/dist/docs/RemoteDataTrack.html new file mode 100644 index 000000000..fdf431078 --- /dev/null +++ b/dist/docs/RemoteDataTrack.html @@ -0,0 +1,1318 @@ + + + + + + + Documentation Class: RemoteDataTrack + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RemoteDataTrack

+
+ +
+ +

+ RemoteDataTrack +

+ +

A RemoteDataTrack represents data published to a Room by a +RemoteParticipant.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
isEnabled + + +boolean + + + + + + + + +

true

isSubscribed + + +boolean + + + + + + + + +

Whether the RemoteDataTrack is +subscribed to

isSwitchedOff + + +boolean + + + + + + + + +

Whether the RemoteDataTrack is +switched off

kind + + +Track.Kind + + + + + + + + +

"data"

maxPacketLifeTime + + +number + + + + + + + + + <nullable>
+ +

If non-null, this represents a time +limit (in milliseconds) during which data will be transmitted or +retransmitted if not acknowledged on the underlying RTCDataChannel.

maxRetransmits + + +number + + + + + + + + + <nullable>
+ +

If non-null, this represents the number +of times the data will be retransmitted if not successfully received on the +underlying RTCDataChannel.

ordered + + +boolean + + + + + + + + +

true if data on the RemoteDataTrack can +be received out-of-order.

priority + + +Track.Priority + + + + + + + + + <nullable>
+ +

The subscribe priority of the RemoteDataTrack

reliable + + +boolean + + + + + + + + +

This is true if both +maxPacketLifeTime and maxRetransmits are set to +null. In other words, if this is true, there is no bound on packet lifetime +or the number of retransmits that will be attempted, ensuring "reliable" +transmission.

sid + + +Track.SID + + + + + + + + +

The SID assigned to the RemoteDataTrack

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

setPriority(priority)

+ + +
+
+ + +
+

Update the subscriber Track.Priority of the RemoteDataTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
priority + + +Track.Priority + + + + + + + + + <nullable>
+ + + +

the new Track.priority; +Currently setPriority has no effect on data tracks.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Throws:
+ + + +
+ + +RangeError + + + + +
+ + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ +
+ + + + + +

Events

+ +
+ +
+
+

message

+ + +
+
+ + +
+

A message was received over the RemoteDataTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
data + + +string +| + +ArrayBuffer + + + + +
track + + +RemoteDataTrack + + + + +

The RemoteDataTrack that received +the message

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOff

+ + +
+
+ + +
+

A RemoteDataTrack was switched off.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteDataTrack + + + + +

The RemoteDataTrack that was +switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOn

+ + +
+
+ + +
+

A RemoteDataTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteDataTrack + + + + +

The RemoteDataTrack that was +switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RemoteDataTrackPublication.html b/dist/docs/RemoteDataTrackPublication.html new file mode 100644 index 000000000..76df1a482 --- /dev/null +++ b/dist/docs/RemoteDataTrackPublication.html @@ -0,0 +1,843 @@ + + + + + + + Documentation Class: RemoteDataTrackPublication + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RemoteDataTrackPublication

+
+ +
+ +

+ RemoteDataTrackPublication +

+ +

A RemoteDataTrackPublication represents a RemoteDataTrack +that has been published to a Room.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
kind + + +Track.Kind + + + + + + + + +

"data"

track + + +RemoteDataTrack + + + + + + + + + <nullable>
+ +

unless you have subscribed to the +RemoteDataTrack, this property is null

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +

Events

+ +
+ +
+
+

subscribed

+ + +
+
+ + +
+

Your LocalParticipant subscribed to the RemoteDataTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteDataTrack + + + + +

the RemoteDataTrack that was subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscriptionFailed

+ + +
+
+ + +
+

Your LocalParticipant failed to subscribe to the RemoteDataTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

the reason the RemoteDataTrack could not be +subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unsubscribed

+ + +
+
+ + +
+

Your LocalParticipant unsubscribed from the RemoteDataTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteDataTrack + + + + +

the RemoteDataTrack that was unsubscribed from

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RemoteParticipant.html b/dist/docs/RemoteParticipant.html new file mode 100644 index 000000000..523abf098 --- /dev/null +++ b/dist/docs/RemoteParticipant.html @@ -0,0 +1,2898 @@ + + + + + + + Documentation Class: RemoteParticipant + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RemoteParticipant

+
+ +
+ +

+ RemoteParticipant +

+ +

A RemoteParticipant represents a remote Participant in a +Room.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
audioTracks + + +Map.<Track.SID, RemoteAudioTrackPublication> + + + + +

The Participant's RemoteAudioTrackPublications

dataTracks + + +Map.<Track.SID, RemoteDataTrackPublication> + + + + +

The Participant's RemoteDataTrackPublications

tracks + + +Map.<Track.SID, RemoteTrackPublication> + + + + +

The Participant's RemoteTrackPublications

videoTracks + + +Map.<Track.SID, RemoteVideoTrackPublication> + + + + +

The Participant's RemoteVideoTrackPublications

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + + + + + +

Events

+ +
+ +
+
+

disconnected

+ + +
+
+ + +
+

The Participant has disconnected.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +Participant + + + + +

The Participant that disconnected.

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

networkQualityLevelChanged

+ + +
+
+ + +
+

The Participant's NetworkQualityLevel changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
networkQualityLevel + + +NetworkQualityLevel + + + + + + + + + + +

The new +NetworkQualityLevel

networkQualityStats + + +NetworkQualityStats + + + + + + + + + <nullable>
+ + + +

The NetworkQualityStats +based on which NetworkQualityLevel is calculated, if any

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnected

+ + +
+
+ + +
+

The RemoteParticipant has reconnected to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnecting

+ + +
+
+ + +
+

The RemoteParticipant is reconnecting to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDimensionsChanged

+ + +
+
+ + +
+

One of the RemoteParticipant's RemoteVideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack whose dimensions changed

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

A RemoteTrack was disabled by the RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication associated with the disabled RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

A RemoteTrack was enabled by the RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication associated with the enabled RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackMessage

+ + +
+
+ + +
+

A message was received over one of the RemoteParticipant's +RemoteDataTracks.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
data + + +string +| + +ArrayBuffer + + + + +
track + + +RemoteDataTrack + + + + +

The RemoteDataTrack over which the +message was received

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackPublished

+ + +
+
+ + +
+

A RemoteTrack was published by the RemoteParticipant after +connecting to the Room. This event is not emitted for +RemoteTracks that were published while the RemoteParticipant +was connecting to the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +which represents the published RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
function trackPublished(publication) {
+  console.log(`Track ${publication.trackSid} was published`);
+}
+
+room.on('participantConnected', participant => {
+  // Handle RemoteTracks published while connecting to the Room.
+  participant.trackPublications.forEach(trackPublished);
+
+  // Handle RemoteTracks published after connecting to the Room.
+  participant.on('trackPublished', trackPublished);
+});
+ + + +
+ + + +
+
+

trackPublishPriorityChanged

+ + +
+
+ + +
+

The RemoteTrackPublication's publish Track.Priority was changed by the +RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
priority + + +Track.Priority + + + + +

the RemoteTrack's new publish +Track.Priority;

publication + + +RemoteTrackPublication + + + + +

The +RemoteTrackPublication for the RemoteTrack that changed priority

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackStarted

+ + +
+
+ + +
+

One of the RemoteParticipant's RemoteTracks started.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSubscribed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was subscribed to.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was subscribed to

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSubscriptionFailed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack could not be subscribed to.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

The reason the RemoteTrack could not be +subscribed to

publication + + +RemoteTrackPublication + + + + +

The +RemoteTrackPublication for the RemoteTrack that could not +be subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOff

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was subscribed to.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was switched off

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOn

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was switched on.

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackUnpublished

+ + +
+
+ + +
+

A RemoteTrack was unpublished by the RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +which represents the unpublished RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackUnsubscribed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was unsubscribed from.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was unsubscribed from

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was unsubscribed from

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RemoteTrackPublication.html b/dist/docs/RemoteTrackPublication.html new file mode 100644 index 000000000..80e10f7bc --- /dev/null +++ b/dist/docs/RemoteTrackPublication.html @@ -0,0 +1,1510 @@ + + + + + + + Documentation Class: RemoteTrackPublication + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RemoteTrackPublication

+
+ +
+ +

+ RemoteTrackPublication +

+ +

A RemoteTrackPublication represents a RemoteTrack that has +been published to a Room.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
isSubscribed + + +boolean + + + + + + + + +

whether the published RemoteTrack +is subscribed to

isTrackEnabled + + +boolean + + + + + + + + +

whether the published +RemoteTrack is enabled

kind + + +Track.Kind + + + + + + + + +

kind of the published RemoteTrack

publishPriority + + +Track.Priority + + + + + + + + +

the Track.Priority of the published +RemoteTrack set by the RemoteParticipant

track + + +RemoteTrack + + + + + + + + + <nullable>
+ +

Unless you have subscribed to the +RemoteTrack, this property is null

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + + + + + +

Events

+ +
+ +
+
+

publishPriorityChanged

+ + +
+
+ + +
+

The RemoteTrack's publish Track.Priority was changed by the +RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
priority + + +Track.Priority + + + + +

the RemoteTrack's new publish +Track.Priority; RemoteTrackPublication#publishPriority is also +updated accordingly

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscribed

+ + +
+
+ + +
+

Your LocalParticipant subscribed to the RemoteTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

the RemoteTrack that was subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscriptionFailed

+ + +
+
+ + +
+

Your LocalParticipant failed to subscribe to the RemoteTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

the reason the RemoteTrack could not be +subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The RemoteTrack was disabled.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The RemoteTrack was enabled.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOff

+ + +
+
+ + +
+

The RemoteTrack was switched off.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

the RemoteTrack that was switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOn

+ + +
+
+ + +
+

The RemoteTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

the RemoteTrack that was switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unsubscribed

+ + +
+
+ + +
+

Your LocalParticipant unsubscribed from the RemoteTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

the RemoteTrack that was unsubscribed from

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RemoteTrackStats.html b/dist/docs/RemoteTrackStats.html new file mode 100644 index 000000000..ff613a05e --- /dev/null +++ b/dist/docs/RemoteTrackStats.html @@ -0,0 +1,448 @@ + + + + + + + Documentation Class: RemoteTrackStats + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RemoteTrackStats

+
+ +
+ +

+ RemoteTrackStats +

+ +

Statistics for a remote Track.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
bytesReceived + + +number + + + + + + + + + <nullable>
+ +

Number of bytes received

packetsReceived + + +number + + + + + + + + + <nullable>
+ +

Number of packets received

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RemoteVideoTrack.html b/dist/docs/RemoteVideoTrack.html new file mode 100644 index 000000000..f7c4ed406 --- /dev/null +++ b/dist/docs/RemoteVideoTrack.html @@ -0,0 +1,2514 @@ + + + + + + + Documentation Class: RemoteVideoTrack + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RemoteVideoTrack

+
+ +
+ +

+ RemoteVideoTrack +

+ +

A RemoteVideoTrack represents a VideoTrack published to a +Room by a RemoteParticipant.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
isEnabled + + +boolean + + + + + + + + +

Whether the RemoteVideoTrack is enabled

isSwitchedOff + + +boolean + + + + + + + + +

Whether the RemoteVideoTrack is switched off

sid + + +Track.SID + + + + + + + + +

The RemoteVideoTrack's SID

priority + + +Track.Priority + + + + + + + + + <nullable>
+ +

The subscribe priority of the RemoteVideoTrack

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

addProcessor(processor [, options])

+ + +
+
+ + +
+

Add a VideoProcessor to allow for custom processing of video frames belonging to a VideoTrack. +When a Participant un-publishes and re-publishes a VideoTrack, a new RemoteVideoTrack is created and +any VideoProcessors attached to the previous RemoteVideoTrack would have to be re-added again.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
processor + + +VideoProcessor + + + + + + + + + + +

The VideoProcessor to use.

options + + +AddProcessorOptions + + + + + + + <optional>
+ + + + + +

AddProcessorOptions to provide.

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
Example
+ +
class GrayScaleProcessor {
+  constructor(percentage) {
+    this.percentage = percentage;
+  }
+  processFrame(inputFrameBuffer, outputFrameBuffer) {
+    const context = outputFrameBuffer.getContext('2d');
+    context.filter = `grayscale(${this.percentage}%)`;
+    context.drawImage(inputFrameBuffer, 0, 0, inputFrameBuffer.width, inputFrameBuffer.height);
+  }
+}
+
+const grayscaleProcessor = new GrayScaleProcessor(100);
+
+Array.from(room.participants.values()).forEach(participant => {
+  const remoteVideoTrack = Array.from(participant.videoTracks.values())[0].track;
+  remoteVideoTrack.addProcessor(grayscaleProcessor);
+});
+ + + +
+ + + +
+
+

attach()

+ + +
+
+ + +
+

Create an HTMLVideoElement and attach the VideoTrack to it.

+

The HTMLVideoElement's srcObject will be set to a new +MediaStream containing the VideoTrack's MediaStreamTrack.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+

videoElement

+
+ + + +
+
+ Type +
+
+ +HTMLVideoElement + + + +
+
+ + + + + +
Example
+ +
const Video = require('twilio-video');
+
+Video.createLocalVideoTrack().then(function(videoTrack) {
+  const videoElement = videoTrack.attach();
+  document.body.appendChild(videoElement);
+});
+  
+ + + +
+ + + +
+
+

detach()

+ + +
+
+ + +
+

Detach the VideoTrack from all previously attached HTMLMediaElements.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+

mediaElements

+
+ + + +
+
+ Type +
+
+ +Array.<HTMLMediaElement> + + + +
+
+ + + + + +
Example
+ +
const mediaElements = videoTrack.detach();
+mediaElements.forEach(mediaElement => mediaElement.remove());
+  
+ + + +
+ + + +
+
+

removeProcessor(processor)

+ + +
+
+ + +
+

Remove the previously added VideoProcessor using addProcessor API.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
processor + + +VideoProcessor + + + + +

The VideoProcessor to remove.

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
Example
+ +
class GrayScaleProcessor {
+  constructor(percentage) {
+    this.percentage = percentage;
+  }
+  processFrame(inputFrameBuffer, outputFrameBuffer) {
+    const context = outputFrameBuffer.getContext('2d');
+    context.filter = `grayscale(${this.percentage}%)`;
+    context.drawImage(inputFrameBuffer, 0, 0, inputFrameBuffer.width, inputFrameBuffer.height);
+  }
+}
+
+const grayscaleProcessor = new GrayScaleProcessor(100);
+
+Array.from(room.participants.values()).forEach(participant => {
+  const remoteVideoTrack = Array.from(participant.videoTracks.values())[0].track;
+  remoteVideoTrack.addProcessor(grayscaleProcessor);
+});
+
+document.getElementById('remove-button').onclick = () => {
+  Array.from(room.participants.values()).forEach(participant => {
+    const remoteVideoTrack = Array.from(participant.videoTracks.values())[0].track;
+    remoteVideoTrack.removeProcessor(grayscaleProcessor);
+  });
+}
+ + + +
+ + + +
+
+

setContentPreferences(contentPreferences)

+ + +
+
+ + +
+

Set the RemoteVideoTrack's content preferences. This method is applicable only for the group rooms and only when connected with +videoContentPreferencesMode in video bandwidth profile options set to 'manual'

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
contentPreferences + + +VideoContentPreferences + + + + +

requested preferences.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ + + +
+
+

setPriority(priority)

+ + +
+
+ + +
+

Update the subscribe Track.Priority of the RemoteVideoTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
priority + + +Track.Priority + + + + + + + + + <nullable>
+ + + +

the new subscribe Track.Priority; +If null, then the subscribe Track.Priority is cleared, which +means the Track.Priority set by the publisher is now the effective priority.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Throws:
+ + + +
+ + +RangeError + + + + +
+ + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ + + +
+
+

switchOff()

+ + +
+
+ + +
+

Request to switch off a RemoteVideoTrack, This method is applicable only for the group rooms and only when connected with +clientTrackSwitchOffControl in video bandwidth profile options set to 'manual'

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ + + +
+
+

switchOn()

+ + +
+
+ + +
+

Request to switch on a RemoteVideoTrack, This method is applicable only for the group rooms and only when connected with +clientTrackSwitchOffControl in video bandwidth profile options set to 'manual'

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ +
+ + + + + +

Events

+ +
+ +
+
+

dimensionsChanged

+ + +
+
+ + +
+

The RemoteVideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack whose +dimensions changed

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disabled

+ + +
+
+ + +
+

The RemoteVideoTrack was disabled, i.e. "paused".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack that was +disabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The RemoteVideoTrack was enabled, i.e. "resumed".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack that was +enabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The RemoteVideoTrack started. This means there is enough video data +to begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOff

+ + +
+
+ + +
+

A RemoteVideoTrack was switched off.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack that was +switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOn

+ + +
+
+ + +
+

A RemoteVideoTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack that was +switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RemoteVideoTrackPublication.html b/dist/docs/RemoteVideoTrackPublication.html new file mode 100644 index 000000000..3fcc20cef --- /dev/null +++ b/dist/docs/RemoteVideoTrackPublication.html @@ -0,0 +1,1003 @@ + + + + + + + Documentation Class: RemoteVideoTrackPublication + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RemoteVideoTrackPublication

+
+ +
+ +

+ RemoteVideoTrackPublication +

+ +

A RemoteVideoTrackPublication represents a RemoteVideoTrack +that has been published to a Room.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
kind + + +Track.Kind + + + + + + + + +

"video"

track + + +RemoteVideoTrack + + + + + + + + + <nullable>
+ +

unless you have subscribed to the +RemoteVideoTrack, this property is null

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +

Events

+ +
+ +
+
+

subscribed

+ + +
+
+ + +
+

Your LocalParticipant subscribed to the RemoteVideoTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

the RemoteVideoTrack that was subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscriptionFailed

+ + +
+
+ + +
+

Your LocalParticipant failed to subscribe to the RemoteVideoTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

the reason the RemoteVideoTrack could not be +subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The RemoteVideoTrack was disabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The RemoteVideoTrack was enabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unsubscribed

+ + +
+
+ + +
+

Your LocalParticipant unsubscribed from the RemoteVideoTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

the RemoteVideoTrack that was unsubscribed from

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RemoteVideoTrackStats.html b/dist/docs/RemoteVideoTrackStats.html new file mode 100644 index 000000000..105c96586 --- /dev/null +++ b/dist/docs/RemoteVideoTrackStats.html @@ -0,0 +1,454 @@ + + + + + + + Documentation Class: RemoteVideoTrackStats + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RemoteVideoTrackStats

+
+ +
+ +

+ RemoteVideoTrackStats +

+ +

Statistics for a VideoTrack.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
dimensions + + +VideoTrack#Dimensions + + + + + + + + + <nullable>
+ +

Received video resolution

frameRate + + +number + + + + + + + + + <nullable>
+ +

Received video frame rate

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/Room.html b/dist/docs/Room.html new file mode 100644 index 000000000..3a6ea064a --- /dev/null +++ b/dist/docs/Room.html @@ -0,0 +1,4932 @@ + + + + + + + Documentation Class: Room + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: Room

+
+ +
+ +

+ Room +

+ +

A Room represents communication between you and one or more +RemoteParticipants sharing AudioTracks and +VideoTracks. +

+You can connect to a Room by calling module:twilio-video.connect.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
dominantSpeaker + + +RemoteParticipant + + + + + + + + + <nullable>
+ +

The Dominant Speaker in the +Room, if any

isRecording + + +boolean + + + + + + + + +

Whether or not the Room is being +recorded

localParticipant + + +LocalParticipant + + + + + + + + +

Your LocalParticipant +in the Room

mediaRegion + + +string + + + + + + + + +

String indicating geographical region +where media is processed for the Room.

name + + +string + + + + + + + + +

The Room's name

participants + + +Map.<Participant.SID, RemoteParticipant> + + + + + + + + +

The RemoteParticipants participating in this Room

sid + + +Room.SID + + + + + + + + +

The Room's SID

state + + +string + + + + + + + + +

"connected", "reconnecting", or "disconnected"

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + +
Throws:
+ + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + +
    +
  • EventEmitter
  • +
+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

disconnect()

+ + +
+
+ + +
+

Disconnect from the Room.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ + + +
+
+

getStats()

+ + +
+
+ + +
+

Get the Room's media statistics. This is not supported in Safari 12.0 or below +due to this bug : https://bugs.webkit.org/show_bug.cgi?id=192601

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +Promise.<Array.<StatsReport>> + + + +
+
+ + + + + +
+ + + +
+
+

refreshInactiveMedia()

+ + +
+
+ + +
+

Restart the muted local media Tracks and play inadvertently paused HTMLMediaElements +that are attached to local and remote media Tracks. This method is useful mainly on +mobile browsers (Safari and Chrome on iOS), where there is a possibility that the muted local +media Tracks are never unmuted and inadvertently paused HTMLMediaElements are never +played again, especially after handling an incoming phone call.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
+ +
+ + + +

Type Definitions

+ +
+ +
+
+

SID

+ + +
+
+ +
+

A Room.SID is a 34-character string starting with "RM" +that uniquely identifies a Room.

+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+ + + +

Events

+ +
+ +
+
+

disconnected

+ + +
+
+ + +
+

Your LocalParticipant was disconnected from the Room and all +other RemoteParticipants.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
room + + +Room + + + + + + + + + + +

The Room your +LocalParticipant was disconnected from

error + + +TwilioError + + + + + + + + + <nullable>
+ + + +

Present when the LocalParticipant got +disconnected from the Room unexpectedly

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('disconnected', function(room, error) {
+  if (error) {
+    console.log('Unexpectedly disconnected:', error);
+  }
+  myRoom.localParticipant.tracks.forEach(function(track) {
+    track.stop();
+    track.detach();
+  });
+});
+ + + +
+ + + +
+
+

dominantSpeakerChanged

+ + +
+
+ + +
+

The Dominant Speaker in the Room changed. Either the Dominant Speaker +is a new RemoteParticipant or the Dominant Speaker has been reset and +is now null.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
dominantSpeaker + + +RemoteParticipant + + + + + + + + + <nullable>
+ + + +

The Dominant Speaker in the +Room, if any

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

participantConnected

+ + +
+
+ + +
+

A RemoteParticipant joined the Room. In Large Group Rooms (Maximum +Participants greater than 50), this event is raised only when a RemoteParticipant +publishes at least one LocalTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +RemoteParticipant + + + + +

The RemoteParticipant who joined

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('participantConnected', function(participant) {
+  console.log(participant.identity + ' joined the Room');
+});
+ + + +
+ + + +
+
+

participantDisconnected

+ + +
+
+ + +
+

A RemoteParticipant left the Room. In Large Group Rooms (Maximum +Participants greater than 50), this event is raised only when a RemoteParticipant +unpublishes all its LocalTracks.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +RemoteParticipant + + + + +

The RemoteParticipant who left

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('participantDisconnected', function(participant) {
+  console.log(participant.identity + ' left the Room');
+  participant.tracks.forEach(function(track) {
+    track.detach().forEach(function(mediaElement) {
+      mediaElement.remove();
+    });
+  });
+});
+ + + +
+ + + +
+
+

participantReconnected

+ + +
+
+ + +
+

A RemoteParticipant has reconnected to the Room after a signaling connection disruption.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +RemoteParticipant + + + + +

The RemoteParticipant that has reconnected.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('participantReconnected', participant => {
+  console.log(participant.identity + ' reconnected to the Room');
+});
+ + + +
+ + + +
+
+

participantReconnecting

+ + +
+
+ + +
+

A RemoteParticipant is reconnecting to the Room after a signaling connection disruption.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +RemoteParticipant + + + + +

The RemoteParticipant that is reconnecting.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('participantReconnecting', participant => {
+  console.log(participant.identity + ' is reconnecting to the Room');
+});
+ + + +
+ + + +
+
+

reconnected

+ + +
+
+ + +
+

Your application successfully reconnected to the Room. When this +event is emitted, the Room is in state "connected".

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('reconnected', () => {
+  console.log('Reconnected!');
+});
+ + + +
+ + + +
+
+

reconnecting

+ + +
+
+ + +
+

Your application is reconnecting to the Room. This happens when there +is a disruption in your signaling connection and/or your media connection. When +this event is emitted, the Room is in state "reconnecting". If reconnecting +succeeds, the Room will emit a "reconnected" event.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +MediaConnectionError +| + +SignalingConnectionDisconnectedError + + + + +

A +MediaConnectionError if your application is reconnecting due to a +disruption in your media connection, or a SignalingConnectionDisconnectedError +if your application is reconnecting due to a disruption in your signaling connection

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('reconnecting', error => {
+  if (error.code === 53001) {
+    console.log('Reconnecting your signaling connection!', error.message);
+  } else if (error.code === 53405) {
+    console.log('Reconnecting your media connection!', error.message);
+  }
+});
+ + + +
+ + + +
+
+

recordingStarted

+ + +
+
+ + +
+

The Room is now being recorded

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

recordingStopped

+ + +
+
+ + +
+

The Room is no longer being recorded

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDimensionsChanged

+ + +
+
+ + +
+

One of the RemoteParticipant's VideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack whose dimensions changed

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteVideoTrack's dimensions changed

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

A RemoteTrack was disabled by a RemoteParticipant in the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication that represents disabled RemoteTrack

participant + + +RemoteParticipant + + + + +

The RemoteParticipant who +disabled the RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

A RemoteTrack was enabled by a RemoteParticipant in the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication that represents enabled RemoteTrack

participant + + +RemoteParticipant + + + + +

The RemoteParticipant who +enabled the RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackMessage

+ + +
+
+ + +
+

A message was received over one of the RemoteParticipant's +RemoteDataTrack's.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
data + + +string +| + +ArrayBuffer + + + + +
track + + +RemoteDataTrack + + + + +

The RemoteDataTrack over which the +message was received

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteDataTrack received the message

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackPublished

+ + +
+
+ + +
+

A RemoteTrack was published by a RemoteParticipant after +connecting to the Room. This event is not emitted for +RemoteTracks that were published while the RemoteParticipant +was connecting to the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +which represents the published RemoteTrack

participant + + +RemoteParticipant + + + + +

The RemoteParticipant who +published the RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
function trackPublished(publication, participant) {
+  console.log(`RemoteParticipant ${participant.sid} published Track ${publication.trackSid}`);
+}
+
+// Handle RemoteTracks published after connecting to the Room.
+room.on('trackPublished', trackPublished);
+
+room.on('participantConnected', participant => {
+  // Handle RemoteTracks published while connecting to the Room.
+  participant.trackPublications.forEach(publication => trackPublished(publication, participant));
+});
+ + + +
+ + + +
+
+

trackPublishPriorityChanged

+ + +
+
+ + +
+

The RemoteTrack's publish Track.Priority was changed by the +RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
priority + + +Track.Priority + + + + +

the RemoteTrack's new publish +Track.Priority;

publication + + +RemoteTrackPublication + + + + +

The +RemoteTrackPublication for the RemoteTrack that changed priority

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack changed priority

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackStarted

+ + +
+
+ + +
+

One of a RemoteParticipant's RemoteTracks in the Room started.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that started

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack started

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSubscribed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was subscribed to.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was subscribed

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was subscribed to

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack was subscribed

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
room.on('trackSubscribed', function(track, publication, participant) {
+  var participantView = document.getElementById('participant-view-' + participant.identity);
+  participantView.appendChild(track.attach());
+});
+ + + +
+ + + +
+
+

trackSubscriptionFailed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack could not be subscribed to.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

The reason the RemoteTrack could not be +subscribed to

publication + + +RemoteTrackPublication + + + + +

The +RemoteTrackPublication for the RemoteTrack that could not +be subscribed to

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack could not be subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOff

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was switched off.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was switched off

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was subscribed to

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack was switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOn

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was switched on

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was subscribed to

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack was switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackUnpublished

+ + +
+
+ + +
+

A RemoteTrack was unpublished by a RemoteParticipant to the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +which represents the unpublished RemoteTrack

participant + + +RemoteParticipant + + + + +

The RemoteParticipant who +unpublished the RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackUnsubscribed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was unsubscribed from.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was unsubscribed

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was unsubscribed from

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack was unsubscribed

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
room.on('trackUnsubscribed', function(track, publication, participant) {
+  track.detach().forEach(function(mediaElement) {
+    mediaElement.remove();
+  });
+});
+ + + +
+ + + +
+
+

trackWarning

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTrackPublications in the Room encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

publication + + +LocalTrackPublication + + + + +

The LocalTrackPublication that encountered the warning.

participant + + +LocalParticipant + + + + +

The LocalParticipant

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
room.on('trackWarning', (name, publication, participant) => {
+  if (name === 'recording-media-lost') {
+    log(`LocalTrack ${publication.track.name} is not recording media.`,
+      name, publication, participant);
+
+    // Wait a reasonable amount of time to clear the warning.
+    const timer = setTimeout(() => {
+      // If the warning is not cleared, you can manually
+      // reconnect to the room, or show a dialog to the user
+    }, 5000);
+
+    room.once('trackWarningsCleared', (publication, participant) => {
+      log('LocalTrack warnings have cleared!',
+        publication, participant);
+      clearTimeout(timer);
+    });
+  }
+});
+ + + +
+ + + +
+
+

trackWarningsCleared

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTrackPublications in the Room cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +LocalTrackPublication + + + + +

The LocalTrackPublication that cleared all warnings.

participant + + +LocalParticipant + + + + +

The LocalParticipant

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RoomAudioOnlyFlagNotSupportedError.html b/dist/docs/RoomAudioOnlyFlagNotSupportedError.html new file mode 100644 index 000000000..3a12853bf --- /dev/null +++ b/dist/docs/RoomAudioOnlyFlagNotSupportedError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: RoomAudioOnlyFlagNotSupportedError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RoomAudioOnlyFlagNotSupportedError

+
+ +
+ +

+ RoomAudioOnlyFlagNotSupportedError +

+ +

Raised whenever a participant tries to set the AudioOnly flag for a Room type other than Group Rooms.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53124

message + + +string + + + + +

'The AudioOnly flag is not supported for the Room type'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RoomCompletedError.html b/dist/docs/RoomCompletedError.html new file mode 100644 index 000000000..cd09aa0f3 --- /dev/null +++ b/dist/docs/RoomCompletedError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: RoomCompletedError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RoomCompletedError

+
+ +
+ +

+ RoomCompletedError +

+ +

Raised whenever a Room is completed via the REST API.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53118

message + + +string + + + + +

'Room completed'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RoomConnectFailedError.html b/dist/docs/RoomConnectFailedError.html new file mode 100644 index 000000000..c80e3fe2d --- /dev/null +++ b/dist/docs/RoomConnectFailedError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: RoomConnectFailedError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RoomConnectFailedError

+
+ +
+ +

+ RoomConnectFailedError +

+ +

Raised whenever a Client is unable to connect to a Room, and the scenario is not covered by a more specific error code.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53104

message + + +string + + + + +

'Unable to connect to Room'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RoomCreateFailedError.html b/dist/docs/RoomCreateFailedError.html new file mode 100644 index 000000000..3ab2d9c80 --- /dev/null +++ b/dist/docs/RoomCreateFailedError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: RoomCreateFailedError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RoomCreateFailedError

+
+ +
+ +

+ RoomCreateFailedError +

+ +

Raised whenever the Server is unable to create a Room.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53103

message + + +string + + + + +

'Unable to create Room'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RoomInvalidParametersError.html b/dist/docs/RoomInvalidParametersError.html new file mode 100644 index 000000000..1a95a9b73 --- /dev/null +++ b/dist/docs/RoomInvalidParametersError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: RoomInvalidParametersError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RoomInvalidParametersError

+
+ +
+ +

+ RoomInvalidParametersError +

+ +

Raised in the REST API when one or more Room creation parameter is incompatible with the Room type.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53114

message + + +string + + + + +

'Room creation parameter(s) incompatible with the Room type'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RoomMaxParticipantsExceededError.html b/dist/docs/RoomMaxParticipantsExceededError.html new file mode 100644 index 000000000..966f2f57f --- /dev/null +++ b/dist/docs/RoomMaxParticipantsExceededError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: RoomMaxParticipantsExceededError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RoomMaxParticipantsExceededError

+
+ +
+ +

+ RoomMaxParticipantsExceededError +

+ +

Raised whenever a Client is unable to connect to a Room because the Room contains too many Participants.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53105

message + + +string + + + + +

'Room contains too many Participants'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RoomMaxParticipantsOutOfRangeError.html b/dist/docs/RoomMaxParticipantsOutOfRangeError.html new file mode 100644 index 000000000..6f1ba5555 --- /dev/null +++ b/dist/docs/RoomMaxParticipantsOutOfRangeError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: RoomMaxParticipantsOutOfRangeError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RoomMaxParticipantsOutOfRangeError

+
+ +
+ +

+ RoomMaxParticipantsOutOfRangeError +

+ +

Raised in the REST API when MaxParticipants is set out of range.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53107

message + + +string + + + + +

'MaxParticipants is out of range'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RoomMediaRegionInvalidError.html b/dist/docs/RoomMediaRegionInvalidError.html new file mode 100644 index 000000000..2a9f0947c --- /dev/null +++ b/dist/docs/RoomMediaRegionInvalidError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: RoomMediaRegionInvalidError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RoomMediaRegionInvalidError

+
+ +
+ +

+ RoomMediaRegionInvalidError +

+ +

Raised in the REST API when MediaRegion is set to an invalid value.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53115

message + + +string + + + + +

'MediaRegion is invalid'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RoomMediaRegionUnavailableError.html b/dist/docs/RoomMediaRegionUnavailableError.html new file mode 100644 index 000000000..db4899471 --- /dev/null +++ b/dist/docs/RoomMediaRegionUnavailableError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: RoomMediaRegionUnavailableError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RoomMediaRegionUnavailableError

+
+ +
+ +

+ RoomMediaRegionUnavailableError +

+ +

Raised in the REST API when MediaRegion is set to a valid value but no media servers are available.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53116

message + + +string + + + + +

'There are no media servers available in the MediaRegion'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RoomNameCharsInvalidError.html b/dist/docs/RoomNameCharsInvalidError.html new file mode 100644 index 000000000..5997783c9 --- /dev/null +++ b/dist/docs/RoomNameCharsInvalidError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: RoomNameCharsInvalidError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RoomNameCharsInvalidError

+
+ +
+ +

+ RoomNameCharsInvalidError +

+ +

Raised whenever a Room name contains invalid characters.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53102

message + + +string + + + + +

'Room name contains invalid characters'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RoomNameInvalidError.html b/dist/docs/RoomNameInvalidError.html new file mode 100644 index 000000000..55f28c93d --- /dev/null +++ b/dist/docs/RoomNameInvalidError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: RoomNameInvalidError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RoomNameInvalidError

+
+ +
+ +

+ RoomNameInvalidError +

+ +

Raised whenever a Room name is invalid, and the scenario is not covered by a more specific error code.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53100

message + + +string + + + + +

'Room name is invalid'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RoomNameTooLongError.html b/dist/docs/RoomNameTooLongError.html new file mode 100644 index 000000000..51aef9a25 --- /dev/null +++ b/dist/docs/RoomNameTooLongError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: RoomNameTooLongError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RoomNameTooLongError

+
+ +
+ +

+ RoomNameTooLongError +

+ +

Raised whenever a Room name is too long.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53101

message + + +string + + + + +

'Room name is too long'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RoomNotFoundError.html b/dist/docs/RoomNotFoundError.html new file mode 100644 index 000000000..841fc96cd --- /dev/null +++ b/dist/docs/RoomNotFoundError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: RoomNotFoundError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RoomNotFoundError

+
+ +
+ +

+ RoomNotFoundError +

+ +

Raised whenever attempting operation on a non-existent Room.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53106

message + + +string + + + + +

'Room not found'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RoomRoomExistsError.html b/dist/docs/RoomRoomExistsError.html new file mode 100644 index 000000000..da6e9c7b9 --- /dev/null +++ b/dist/docs/RoomRoomExistsError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: RoomRoomExistsError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RoomRoomExistsError

+
+ +
+ +

+ RoomRoomExistsError +

+ +

Raised in the REST API when the Room creation fails because a Room exists with the same name.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53113

message + + +string + + + + +

'Room exists'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RoomStatusCallbackInvalidError.html b/dist/docs/RoomStatusCallbackInvalidError.html new file mode 100644 index 000000000..8339e684e --- /dev/null +++ b/dist/docs/RoomStatusCallbackInvalidError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: RoomStatusCallbackInvalidError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RoomStatusCallbackInvalidError

+
+ +
+ +

+ RoomStatusCallbackInvalidError +

+ +

Raised in the REST API when StatusCallback is not a valid URL or the url is too long.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53111

message + + +string + + + + +

'StatusCallback is invalid'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RoomStatusCallbackMethodInvalidError.html b/dist/docs/RoomStatusCallbackMethodInvalidError.html new file mode 100644 index 000000000..4442b582d --- /dev/null +++ b/dist/docs/RoomStatusCallbackMethodInvalidError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: RoomStatusCallbackMethodInvalidError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RoomStatusCallbackMethodInvalidError

+
+ +
+ +

+ RoomStatusCallbackMethodInvalidError +

+ +

Raised in the REST API when StatusCallbackMethod is set to an invalid value.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53110

message + + +string + + + + +

'StatusCallbackMethod is invalid'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RoomStatusInvalidError.html b/dist/docs/RoomStatusInvalidError.html new file mode 100644 index 000000000..9a4128056 --- /dev/null +++ b/dist/docs/RoomStatusInvalidError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: RoomStatusInvalidError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RoomStatusInvalidError

+
+ +
+ +

+ RoomStatusInvalidError +

+ +

Raised in the REST API when Status is not valid or the Room is not in-progress.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53112

message + + +string + + + + +

'Status is invalid'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RoomSubscriptionOperationNotSupportedError.html b/dist/docs/RoomSubscriptionOperationNotSupportedError.html new file mode 100644 index 000000000..930448e31 --- /dev/null +++ b/dist/docs/RoomSubscriptionOperationNotSupportedError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: RoomSubscriptionOperationNotSupportedError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RoomSubscriptionOperationNotSupportedError

+
+ +
+ +

+ RoomSubscriptionOperationNotSupportedError +

+ +

Raised whenever the subscription operation requested is not supported for the Room type.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53117

message + + +string + + + + +

'The subscription operation requested is not supported for the Room type'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RoomTimeoutOutOfRangeError.html b/dist/docs/RoomTimeoutOutOfRangeError.html new file mode 100644 index 000000000..fd0137e6f --- /dev/null +++ b/dist/docs/RoomTimeoutOutOfRangeError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: RoomTimeoutOutOfRangeError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RoomTimeoutOutOfRangeError

+
+ +
+ +

+ RoomTimeoutOutOfRangeError +

+ +

Raised in the REST API when Timeout is set out of range.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53109

message + + +string + + + + +

'Timeout is out of range'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RoomTrackKindNotSupportedError.html b/dist/docs/RoomTrackKindNotSupportedError.html new file mode 100644 index 000000000..84bde3319 --- /dev/null +++ b/dist/docs/RoomTrackKindNotSupportedError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: RoomTrackKindNotSupportedError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RoomTrackKindNotSupportedError

+
+ +
+ +

+ RoomTrackKindNotSupportedError +

+ +

Raised whenever a participant tries to publish a track or connects with a track that is not supported by the group room.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53125

message + + +string + + + + +

'The track kind is not supported by the Room'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/RoomTypeInvalidError.html b/dist/docs/RoomTypeInvalidError.html new file mode 100644 index 000000000..8375db57d --- /dev/null +++ b/dist/docs/RoomTypeInvalidError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: RoomTypeInvalidError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: RoomTypeInvalidError

+
+ +
+ +

+ RoomTypeInvalidError +

+ +

Raised in the REST API when the user attempts to create a Room with an invalid RoomType

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53108

message + + +string + + + + +

'RoomType is not valid'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/SignalingConnectionDisconnectedError.html b/dist/docs/SignalingConnectionDisconnectedError.html new file mode 100644 index 000000000..950fbf6bc --- /dev/null +++ b/dist/docs/SignalingConnectionDisconnectedError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: SignalingConnectionDisconnectedError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: SignalingConnectionDisconnectedError

+
+ +
+ +

+ SignalingConnectionDisconnectedError +

+ +

Raised whenever the signaling connection is unexpectedly disconnected.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53001

message + + +string + + + + +

'Signaling connection disconnected'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/SignalingConnectionError.html b/dist/docs/SignalingConnectionError.html new file mode 100644 index 000000000..0e753c5fe --- /dev/null +++ b/dist/docs/SignalingConnectionError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: SignalingConnectionError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: SignalingConnectionError

+
+ +
+ +

+ SignalingConnectionError +

+ +

Raised whenever a signaling connection error occurs that is not covered by a more specific error code.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53000

message + + +string + + + + +

'Signaling connection error'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/SignalingConnectionTimeoutError.html b/dist/docs/SignalingConnectionTimeoutError.html new file mode 100644 index 000000000..ca8a5f126 --- /dev/null +++ b/dist/docs/SignalingConnectionTimeoutError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: SignalingConnectionTimeoutError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: SignalingConnectionTimeoutError

+
+ +
+ +

+ SignalingConnectionTimeoutError +

+ +

Raised when connection liveliness checks fail, or when the signaling session expires.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53002

message + + +string + + + + +

'Signaling connection timed out'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/SignalingIncomingMessageInvalidError.html b/dist/docs/SignalingIncomingMessageInvalidError.html new file mode 100644 index 000000000..ca8ce93b6 --- /dev/null +++ b/dist/docs/SignalingIncomingMessageInvalidError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: SignalingIncomingMessageInvalidError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: SignalingIncomingMessageInvalidError

+
+ +
+ +

+ SignalingIncomingMessageInvalidError +

+ +

Raised whenever the Client receives a message from the Server that the Client cannot handle.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53003

message + + +string + + + + +

'Client received an invalid signaling message'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/SignalingOutgoingMessageInvalidError.html b/dist/docs/SignalingOutgoingMessageInvalidError.html new file mode 100644 index 000000000..cfa0e6ab1 --- /dev/null +++ b/dist/docs/SignalingOutgoingMessageInvalidError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: SignalingOutgoingMessageInvalidError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: SignalingOutgoingMessageInvalidError

+
+ +
+ +

+ SignalingOutgoingMessageInvalidError +

+ +

Raised whenever the Client sends a message to the Server that the Server cannot handle.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53004

message + + +string + + + + +

'Client sent an invalid signaling message'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/SignalingServerBusyError.html b/dist/docs/SignalingServerBusyError.html new file mode 100644 index 000000000..177533f85 --- /dev/null +++ b/dist/docs/SignalingServerBusyError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: SignalingServerBusyError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: SignalingServerBusyError

+
+ +
+ +

+ SignalingServerBusyError +

+ +

Raised when the server is too busy to accept new clients.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53006

message + + +string + + + + +

'Video server is busy'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/StatsReport.html b/dist/docs/StatsReport.html new file mode 100644 index 000000000..aba064243 --- /dev/null +++ b/dist/docs/StatsReport.html @@ -0,0 +1,497 @@ + + + + + + + Documentation Class: StatsReport + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: StatsReport

+
+ +
+ +

+ StatsReport +

+ +

Statistics report for an RTCPeerConnection.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
peerConnectionId + + +string + + + + +

ID of the RTCPeerConnection

localAudioTrackStats + + +Array.<LocalAudioTrackStats> + + + + +

List of LocalAudioTrackStats

localVideoTrackStats + + +Array.<LocalVideoTrackStats> + + + + +

List of LocalVideoTrackStats

remoteAudioTrackStats + + +Array.<RemoteAudioTrackStats> + + + + +

List of RemoteAudioTrackStats

remoteVideoTrackStats + + +Array.<RemoteVideoTrackStats> + + + + +

List of RemoteVideoTrackStats

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/Track.html b/dist/docs/Track.html new file mode 100644 index 000000000..f9c272d67 --- /dev/null +++ b/dist/docs/Track.html @@ -0,0 +1,727 @@ + + + + + + + Documentation Class: Track + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: Track

+
+ +
+ +

+ Track +

+ +

A Track represents a stream of audio, video, or data.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
kind + + +Track.Kind + + + + +

The Track's kind

name + + +string + + + + +

The Track's name

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + +
    +
  • EventEmitter
  • +
+ + + + + + + + + + + + + + + + + +

Type Definitions

+ +
+ +
+
+

ID

+ + +
+
+ +
+

The Track ID is a string identifier for the Track.

+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

Kind

+ + +
+
+ +
+

The Track kind is either "audio", "video", or "data".

+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

Priority

+ + +
+
+ +
+

The Track's priority can be "low", "standard", or "high".

+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

SID

+ + +
+
+ +
+

The Track SID is a unique string identifier for the Track +that is published to a Room.

+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+ + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/TrackInvalidError.html b/dist/docs/TrackInvalidError.html new file mode 100644 index 000000000..916c833e9 --- /dev/null +++ b/dist/docs/TrackInvalidError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: TrackInvalidError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: TrackInvalidError

+
+ +
+ +

+ TrackInvalidError +

+ +

Raised whenever a Track is invalid, and the scenario is not covered by a more specific error code.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53300

message + + +string + + + + +

'Track is invalid'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/TrackNameCharsInvalidError.html b/dist/docs/TrackNameCharsInvalidError.html new file mode 100644 index 000000000..b9af17e6c --- /dev/null +++ b/dist/docs/TrackNameCharsInvalidError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: TrackNameCharsInvalidError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: TrackNameCharsInvalidError

+
+ +
+ +

+ TrackNameCharsInvalidError +

+ +

Raised whenever a Track name contains invalid characters.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53303

message + + +string + + + + +

'Track name contains invalid characters'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/TrackNameInvalidError.html b/dist/docs/TrackNameInvalidError.html new file mode 100644 index 000000000..17c05d335 --- /dev/null +++ b/dist/docs/TrackNameInvalidError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: TrackNameInvalidError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: TrackNameInvalidError

+
+ +
+ +

+ TrackNameInvalidError +

+ +

Raised whenever a Track name is invalid, and the scenario is not covered by a more specific error code.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53301

message + + +string + + + + +

'Track name is invalid'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/TrackNameIsDuplicatedError.html b/dist/docs/TrackNameIsDuplicatedError.html new file mode 100644 index 000000000..ffbb8a332 --- /dev/null +++ b/dist/docs/TrackNameIsDuplicatedError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: TrackNameIsDuplicatedError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: TrackNameIsDuplicatedError

+
+ +
+ +

+ TrackNameIsDuplicatedError +

+ +

Raised whenever a Participant is currently publishing a Track with the same name.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53304

message + + +string + + + + +

'Track name is duplicated'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/TrackNameTooLongError.html b/dist/docs/TrackNameTooLongError.html new file mode 100644 index 000000000..88c768d4a --- /dev/null +++ b/dist/docs/TrackNameTooLongError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: TrackNameTooLongError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: TrackNameTooLongError

+
+ +
+ +

+ TrackNameTooLongError +

+ +

Raised whenever a Track name is too long.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53302

message + + +string + + + + +

'Track name is too long'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/TrackPublication.html b/dist/docs/TrackPublication.html new file mode 100644 index 000000000..21f0ea530 --- /dev/null +++ b/dist/docs/TrackPublication.html @@ -0,0 +1,595 @@ + + + + + + + Documentation Class: TrackPublication + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: TrackPublication

+
+ +
+ +

+ TrackPublication +

+ +

A TrackPublication represents a Track that +has been published to a Room.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
trackName + + +string + + + + +

the published Track's name

trackSid + + +Track.SID + + + + +

SID assigned to the published Track

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +

Events

+ +
+ +
+
+

trackDisabled

+ + +
+
+ + +
+

The published Track was disabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The published Track was enabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/TrackServerTrackCapacityReachedError.html b/dist/docs/TrackServerTrackCapacityReachedError.html new file mode 100644 index 000000000..5402fe105 --- /dev/null +++ b/dist/docs/TrackServerTrackCapacityReachedError.html @@ -0,0 +1,541 @@ + + + + + + + Documentation Class: TrackServerTrackCapacityReachedError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: TrackServerTrackCapacityReachedError

+
+ +
+ +

+ TrackServerTrackCapacityReachedError +

+ +

The server does not have enough resources available to create a new Track.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

53305

message + + +string + + + + +

'The server has reached capacity and cannot fulfill this request'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/TrackStats.html b/dist/docs/TrackStats.html new file mode 100644 index 000000000..f148a2c52 --- /dev/null +++ b/dist/docs/TrackStats.html @@ -0,0 +1,567 @@ + + + + + + + Documentation Class: TrackStats + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: TrackStats

+
+ +
+ +

+ TrackStats +

+ +

Statistics for a Track.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
trackId + + +Track.ID + + + + + + + + +

The Track ID

trackSid + + +Track.SID + + + + + + + + +

The Track's SID when published in +in a Room

timestamp + + +number + + + + + + + + +

A Unix timestamp in milliseconds indicating +when the TrackStats were gathered

ssrc + + +string + + + + + + + + +

The Track's SSRC when transmitted over the +RTCPeerConnection

packetsLost + + +number + + + + + + + + + <nullable>
+ +

The number of packets lost

codec + + +string + + + + + + + + + <nullable>
+ +

The name of the codec used to encode the +Track's media

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/TwilioError.html b/dist/docs/TwilioError.html new file mode 100644 index 000000000..23a51e8ff --- /dev/null +++ b/dist/docs/TwilioError.html @@ -0,0 +1,514 @@ + + + + + + + Documentation Class: TwilioError + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: TwilioError

+
+ +
+ +

+ TwilioError +

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
code + + +number + + + + +

Error code

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + +
    +
  • Error
  • +
+ + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

toString()

+ + +
+
+ + +
+

Returns human readable string describing the error.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + + +
+
+ + + + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/VideoTrack.html b/dist/docs/VideoTrack.html new file mode 100644 index 000000000..7da0f94c5 --- /dev/null +++ b/dist/docs/VideoTrack.html @@ -0,0 +1,2591 @@ + + + + + + + Documentation Class: VideoTrack + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Class: VideoTrack

+
+ +
+ +

+ VideoTrack +

+ +

A VideoTrack is a Track representing video.

+ + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
isStarted + + +boolean + + + + + + + + +

Whether or not the VideoTrack has +started; if the VideoTrack started, there is enough video data to +begin playback

isEnabled + + +boolean + + + + + + + + +

Whether or not the VideoTrack is +enabled; if the VideoTrack is not enabled, it is "paused"

dimensions + + +VideoTrack.Dimensions + + + + + + + + +

The VideoTrack's +VideoTrack.Dimensions

kind + + +Track.Kind + + + + + + + + +

"video"

mediaStreamTrack + + +MediaStreamTrack + + + + + + + + +

A video MediaStreamTrack

processedTrack + + +MediaStreamTrack + + + + + + + + + <nullable>
+ +

The source of processed video frames. +It is null if no VideoProcessor has been added.

processor + + +VideoProcessor + + + + + + + + + <nullable>
+ +

A VideoProcessor that is currently +processing video frames. It is null if video frames are not being processed.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
Fires:
+ + + + + + + + + + + + +
+ + +
+ + +

Extends

+ + + + + + + + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

addProcessor(processor [, options])

+ + +
+
+ + +
+

Add a VideoProcessor to allow for custom processing of video frames belonging to a VideoTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
processor + + +VideoProcessor + + + + + + + + + + +

The VideoProcessor to use.

options + + +AddProcessorOptions + + + + + + + <optional>
+ + + + + +

AddProcessorOptions to provide.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
Example
+ +
class GrayScaleProcessor {
+  constructor(percentage) {
+    this.percentage = percentage;
+  }
+  processFrame(inputFrameBuffer, outputFrameBuffer) {
+    const context = outputFrameBuffer.getContext('2d');
+    context.filter = `grayscale(${this.percentage}%)`;
+    context.drawImage(inputFrameBuffer, 0, 0, inputFrameBuffer.width, inputFrameBuffer.height);
+  }
+}
+
+Video.createLocalVideoTrack().then(function(videoTrack) {
+  videoTrack.addProcessor(new GrayScaleProcessor(100));
+});
+ + + +
+ + + +
+
+

attach()

+ + +
+
+ + +
+

Create an HTMLVideoElement and attach the VideoTrack to it.

+

The HTMLVideoElement's srcObject will be set to a new +MediaStream containing the VideoTrack's MediaStreamTrack.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+

videoElement

+
+ + + +
+
+ Type +
+
+ +HTMLVideoElement + + + +
+
+ + + + + +
Example
+ +
const Video = require('twilio-video');
+
+Video.createLocalVideoTrack().then(function(videoTrack) {
+  const videoElement = videoTrack.attach();
+  document.body.appendChild(videoElement);
+});
+  
+ + + +
+ + + +
+
+

attach(mediaElement)

+ + +
+
+ + +
+

Attach the VideoTrack to an existing HTMLMediaElement. The +HTMLMediaElement could be an HTMLAudioElement or an HTMLVideoElement.

+

If the HTMLMediaElement's srcObject is not set to a MediaStream, +this method sets it to a new MediaStream containing the VideoTrack's +MediaStreamTrack; otherwise, it adds the MediaTrack's +MediaStreamTrack to the existing MediaStream. Finally, if there are any other +MediaStreamTracks of the same kind on the MediaStream, this method removes +them.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
mediaElement + + +HTMLMediaElement + + + + +

The HTMLMediaElement to attach to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+

mediaElement

+
+ + + +
+
+ Type +
+
+ +HTMLMediaElement + + + +
+
+ + + + + +
Example
+ +
const Video = require('twilio-video');
+
+const videoElement = document.createElement('video');
+document.body.appendChild(videoElement);
+
+Video.createLocalVideoTrack().then(function(videoTrack) {
+  videoTrack.attach(videoElement);
+});
+  
+ + + +
+ + + +
+
+

attach(selector)

+ + +
+
+ + +
+

Attach the VideoTrack to an HTMLMediaElement selected by +document.querySelector. The HTMLMediaElement could be an +HTMLAudioElement or an HTMLVideoElement.

+

If the HTMLMediaElement's srcObject is not set to a MediaStream, +this method sets it to a new MediaStream containing the VideoTrack's +MediaStreamTrack; otherwise, it adds the VideoTrack's +MediaStreamTrack to the existing MediaStream. Finally, if there are any other +MediaStreamTracks of the same kind on the MediaStream, this method removes +them.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
selector + + +string + + + + +

A query selector for the HTMLMediaElement to +attach to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+

mediaElement

+
+ + + +
+
+ Type +
+
+ +HTMLMediaElement + + + +
+
+ + + + + +
Example
+ +
const Video = require('twilio-video');
+
+const videoElement = document.createElement('video');
+videoElement.id = 'my-video-element';
+document.body.appendChild(videoElement);
+
+Video.createLocalVideoTrack().then(function(track) {
+  track.attach('#my-video-element');
+});
+ + + +
+ + + +
+
+

detach()

+ + +
+
+ + +
+

Detach the VideoTrack from all previously attached HTMLMediaElements.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+

mediaElements

+
+ + + +
+
+ Type +
+
+ +Array.<HTMLMediaElement> + + + +
+
+ + + + + +
Example
+ +
const mediaElements = videoTrack.detach();
+mediaElements.forEach(mediaElement => mediaElement.remove());
+  
+ + + +
+ + + +
+
+

detach(mediaElement)

+ + +
+
+ + +
+

Detach the VideoTrack from a previously attached HTMLMediaElement.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
mediaElement + + +HTMLMediaElement + + + + +

One of the HTMLMediaElements to +which the VideoTrack is attached

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+

mediaElement

+
+ + + +
+
+ Type +
+
+ +HTMLMediaElement + + + +
+
+ + + + + +
Example
+ +
const videoElement = document.getElementById('my-video-element');
+videoTrack.detach(videoElement).remove();
+  
+ + + +
+ + + +
+
+

detach(selector)

+ + +
+
+ + +
+

Detach the VideoTrack from a previously attached HTMLMediaElement +specified by document.querySelector.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
selector + + +string + + + + +

The query selector of HTMLMediaElement to which +the VideoTrack is attached

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+

mediaElement

+
+ + + +
+
+ Type +
+
+ +HTMLMediaElement + + + +
+
+ + + + + +
Example
+ +
videoTrack.detach('#my-video-element').remove();
+ + + +
+ + + +
+
+

removeProcessor(processor)

+ + +
+
+ + +
+

Remove the previously added VideoProcessor using addProcessor API.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
processor + + +VideoProcessor + + + + +

The VideoProcessor to remove.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +this + + + +
+
+ + + + + +
Example
+ +
class GrayScaleProcessor {
+  constructor(percentage) {
+    this.percentage = percentage;
+  }
+  processFrame(inputFrameBuffer, outputFrameBuffer) {
+    const context = outputFrameBuffer.getContext('2d');
+    context.filter = `grayscale(${this.percentage}%)`;
+    context.drawImage(inputFrameBuffer, 0, 0, inputFrameBuffer.width, inputFrameBuffer.height);
+  }
+}
+
+Video.createLocalVideoTrack().then(function(videoTrack) {
+  const grayScaleProcessor = new GrayScaleProcessor(100);
+  videoTrack.addProcessor(grayScaleProcessor);
+  document.getElementById('remove-button').onclick = () => videoTrack.removeProcessor(grayScaleProcessor);
+});
+ + + +
+ +
+ + + +

Type Definitions

+ +
+ +
+
+

Dimensions

+ + +
+
+ +
+

A VideoTrack's width and height.

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
width + + +number + + + + + + + + + <nullable>
+ +

The VideoTrack's width or null if the +VideoTrack has not yet started

height + + +number + + + + + + + + + <nullable>
+ +

The VideoTrack's height or null if the +VideoTrack has not yet started

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+ + + +

Events

+ +
+ +
+
+

dimensionsChanged

+ + +
+
+ + +
+

The VideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack whose dimensions changed

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disabled

+ + +
+
+ + +
+

The VideoTrack was disabled, i.e. "paused".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack that was disabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The VideoTrack was enabled, i.e. "unpaused".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack that was enabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The VideoTrack started. This means there is enough video data to +begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack that started

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/classes.list.html b/dist/docs/classes.list.html new file mode 100644 index 000000000..6275a3b94 --- /dev/null +++ b/dist/docs/classes.list.html @@ -0,0 +1,18513 @@ + + + + + + + Documentation Classes + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Classes

+
+ +
+ +

+ +

+ + +
+ + +
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +

Classes

+ +
+
AccessTokenExpiredError
+
+ +
AccessTokenGrantsInvalidError
+
+ +
AccessTokenHeaderInvalidError
+
+ +
AccessTokenInvalidError
+
+ +
AccessTokenIssuerInvalidError
+
+ +
AccessTokenNotYetValidError
+
+ +
AccessTokenSignatureInvalidError
+
+ +
AudioTrack
+
+ +
ConfigurationAcquireFailedError
+
+ +
ConfigurationAcquireTurnFailedError
+
+ +
LocalAudioTrack
+
+ +
LocalAudioTrackPublication
+
+ +
LocalAudioTrackStats
+
+ +
LocalDataTrack
+
+ +
LocalDataTrackPublication
+
+ +
LocalParticipant
+
+ +
LocalTrackPublication
+
+ +
LocalTrackStats
+
+ +
LocalVideoTrack
+
+ +
LocalVideoTrackPublication
+
+ +
LocalVideoTrackStats
+
+ +
MediaClientLocalDescFailedError
+
+ +
MediaClientRemoteDescFailedError
+
+ +
MediaConnectionError
+
+ +
MediaDTLSTransportFailedError
+
+ +
MediaNoSupportedCodecError
+
+ +
MediaServerLocalDescFailedError
+
+ +
MediaServerRemoteDescFailedError
+
+ +
NetworkQualityAudioStats
+
+ +
NetworkQualityBandwidthStats
+
+ +
NetworkQualityFractionLostStats
+
+ +
NetworkQualityLatencyStats
+
+ +
NetworkQualityMediaStats
+
+ +
NetworkQualityRecvStats
+
+ +
NetworkQualitySendOrRecvStats
+
+ +
NetworkQualitySendStats
+
+ +
NetworkQualityStats
+
+ +
NetworkQualityVideoStats
+
+ +
Participant
+
+ +
ParticipantDuplicateIdentityError
+
+ +
ParticipantIdentityCharsInvalidError
+
+ +
ParticipantIdentityInvalidError
+
+ +
ParticipantIdentityTooLongError
+
+ +
ParticipantMaxTracksExceededError
+
+ +
ParticipantNotFoundError
+
+ +
PreflightTest
+
+ +
RemoteAudioTrack
+
+ +
RemoteAudioTrackPublication
+
+ +
RemoteAudioTrackStats
+
+ +
RemoteDataTrack
+
+ +
RemoteDataTrackPublication
+
+ +
RemoteParticipant
+
+ +
RemoteTrackPublication
+
+ +
RemoteTrackStats
+
+ +
RemoteVideoTrack
+
+ +
RemoteVideoTrackPublication
+
+ +
RemoteVideoTrackStats
+
+ +
Room
+
+ +
RoomAudioOnlyFlagNotSupportedError
+
+ +
RoomCompletedError
+
+ +
RoomConnectFailedError
+
+ +
RoomCreateFailedError
+
+ +
RoomInvalidParametersError
+
+ +
RoomMaxParticipantsExceededError
+
+ +
RoomMaxParticipantsOutOfRangeError
+
+ +
RoomMediaRegionInvalidError
+
+ +
RoomMediaRegionUnavailableError
+
+ +
RoomNameCharsInvalidError
+
+ +
RoomNameInvalidError
+
+ +
RoomNameTooLongError
+
+ +
RoomNotFoundError
+
+ +
RoomRoomExistsError
+
+ +
RoomStatusCallbackInvalidError
+
+ +
RoomStatusCallbackMethodInvalidError
+
+ +
RoomStatusInvalidError
+
+ +
RoomSubscriptionOperationNotSupportedError
+
+ +
RoomTimeoutOutOfRangeError
+
+ +
RoomTrackKindNotSupportedError
+
+ +
RoomTypeInvalidError
+
+ +
SignalingConnectionDisconnectedError
+
+ +
SignalingConnectionError
+
+ +
SignalingConnectionTimeoutError
+
+ +
SignalingIncomingMessageInvalidError
+
+ +
SignalingOutgoingMessageInvalidError
+
+ +
SignalingServerBusyError
+
+ +
StatsReport
+
+ +
Track
+
+ +
TrackInvalidError
+
+ +
TrackNameCharsInvalidError
+
+ +
TrackNameInvalidError
+
+ +
TrackNameIsDuplicatedError
+
+ +
TrackNameTooLongError
+
+ +
TrackPublication
+
+ +
TrackServerTrackCapacityReachedError
+
+ +
TrackStats
+
+ +
TwilioError
+
+ +
VideoTrack
+
+
+ + + + + + + + + + + + + +

Events

+ +
+ +
+
+

disabled

+ + +
+
+ + +
+

The AudioTrack was disabled, i.e. "muted".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +AudioTrack + + + + +

The AudioTrack that was disabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The AudioTrack was enabled, i.e. "unmuted".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +AudioTrack + + + + +

The AudioTrack that was enabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The AudioTrack started. This means there is enough audio data to +begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +AudioTrack + + + + +

The AudioTrack that started

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

event

+ + +
+
+ + +
+

The SDK raised an EventListenerEvent.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
event + + +EventListenerEvent + + + + +

Context about the event raised by the SDK. +This can be one of the following:

+
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disabled

+ + +
+
+ + +
+

The LocalAudioTrack was disabled, i.e. the audio source was muted by the user.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that was +disabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The LocalAudioTrack was enabled, i.e. the audio source was unmuted by the user.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that was enabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

muted

+ + +
+
+ + +
+

The LocalAudioTrack was muted because the audio source stopped sending samples, most +likely due to another application taking said audio source, especially on mobile devices.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that was muted

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The LocalAudioTrack started. This means there is enough audio data to +begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

stopped

+ + +
+
+ + +
+

The LocalAudioTrack stopped, either because LocalAudioTrack#stop +or LocalAudioTrack#restart was called or because the underlying +MediaStreamTrack ended.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that stopped

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unmuted

+ + +
+
+ + +
+

The LocalAudioTrack was unmuted because the audio source resumed sending samples, +most likely due to the application that took over the said audio source has released it +back to the application, especially on mobile devices. This event is also fired when +LocalAudioTrack#restart is called on a muted LocalAudioTrack with a +new audio source.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that was unmuted

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The published Track was disabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The published Track was enabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warning

+ + +
+
+ + +
+

The published LocalTrack encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warningsCleared

+ + +
+
+ + +
+

The published LocalTrack cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The published Track was disabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The published Track was enabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warning

+ + +
+
+ + +
+

The published LocalTrack encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warningsCleared

+ + +
+
+ + +
+

The published LocalTrack cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disconnected

+ + +
+
+ + +
+

The Participant has disconnected.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +Participant + + + + +

The Participant that disconnected.

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

networkQualityLevelChanged

+ + +
+
+ + +
+

The Participant's NetworkQualityLevel changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
networkQualityLevel + + +NetworkQualityLevel + + + + + + + + + + +

The new +NetworkQualityLevel

networkQualityStats + + +NetworkQualityStats + + + + + + + + + <nullable>
+ + + +

The NetworkQualityStats +based on which NetworkQualityLevel is calculated, if any

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnected

+ + +
+
+ + +
+

The LocalParticipant has reconnected to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnecting

+ + +
+
+ + +
+

The LocalParticipant is reconnecting to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDimensionsChanged

+ + +
+
+ + +
+

One of the LocalParticipant's LocalVideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack whose dimensions changed

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

A LocalTrack was disabled by the LocalParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalTrack + + + + +

The LocalTrack that was disabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

A LocalTrack was enabled by the LocalParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalTrack + + + + +

The LocalTrack that was enabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackPublicationFailed

+ + +
+
+ + +
+

A LocalTrack failed to publish. Check the error message for more +information. In a Large Group Room (Maximum Participants greater than 50), +this event is raised with a ParticipantMaxTracksExceededError either +when attempting to publish the LocalTrack will exceed the Maximum Published +Tracks limit of 16, or the LocalTrack is part of a set of LocalTracks +which along with the published Tracks exceeds 16.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

A TwilioError explaining why publication +failed

localTrack + + +LocalTrack + + + + +

The LocalTrack that failed to +publish

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackPublished

+ + +
+
+ + +
+

A LocalTrack that was added using LocalParticipant#publishTrack was successfully published. This event +is not raised for LocalTracks added in ConnectOptions.tracks or auto-created within +connect.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +LocalTrackPublication + + + + +

The resulting +LocalTrackPublication for the published LocalTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackStarted

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTracks started.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalTrack + + + + +

The LocalTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackStopped

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTracks stopped, either +because LocalTrack#stop was called or because the underlying +MediaStreamTrack ended).

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalTrack + + + + +

The LocalTrack that stopped

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackWarning

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTrackPublications encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

publication + + +LocalTrackPublication + + + + +

The LocalTrackPublication that encountered the warning.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackWarningsCleared

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTrackPublications cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +LocalTrackPublication + + + + +

The LocalTrackPublication that cleared all warnings.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The published Track was disabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The published Track was enabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warning

+ + +
+
+ + +
+

The published LocalTrack encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warningsCleared

+ + +
+
+ + +
+

The published LocalTrack cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

dimensionsChanged

+ + +
+
+ + +
+

The VideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack whose dimensions changed

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disabled

+ + +
+
+ + +
+

The LocalVideoTrack was disabled, i.e. the video source was paused by the user.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that was +disabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The LocalVideoTrack was enabled, i.e. the video source was unpaused by the user.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that was enabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

muted

+ + +
+
+ + +
+

The LocalVideoTrack was muted because the video source stopped sending frames, most +likely due to another application taking said video source, especially on mobile devices.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that was muted

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The LocalVideoTrack started. This means there is enough video data +to begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

stopped

+ + +
+
+ + +
+

The LocalVideoTrack stopped, either because LocalVideoTrack#stop +or LocalVideoTrack#restart was called or because the underlying +MediaStreamTrack ended.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that stopped

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unmuted

+ + +
+
+ + +
+

The LocalVideoTrack was unmuted because the video source resumed sending frames, +most likely due to the application that took over the said video source has released it +back to the application, especially on mobile devices. This event is also fired when +LocalVideoTrack#restart is called on a muted LocalVideoTrack with a +new video source.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that was unmuted

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The published Track was disabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The published Track was enabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warning

+ + +
+
+ + +
+

The published LocalTrack encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warningsCleared

+ + +
+
+ + +
+

The published LocalTrack cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disconnected

+ + +
+
+ + +
+

The Participant has disconnected.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +Participant + + + + +

The Participant that disconnected.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

networkQualityLevelChanged

+ + +
+
+ + +
+

The Participant's NetworkQualityLevel changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
networkQualityLevel + + +NetworkQualityLevel + + + + + + + + + + +

The new +NetworkQualityLevel

networkQualityStats + + +NetworkQualityStats + + + + + + + + + <nullable>
+ + + +

The NetworkQualityStats +based on which NetworkQualityLevel is calculated, if any

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnected

+ + +
+
+ + +
+

The Participant has reconnected to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnecting

+ + +
+
+ + +
+

The Participant is reconnecting to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDimensionsChanged

+ + +
+
+ + +
+

One of the Participant's VideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack whose dimensions changed

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackStarted

+ + +
+
+ + +
+

One of the Participant's Tracks started.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +Track + + + + +

The Track that started

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

completed

+ + +
+
+ + +
+

Preflight test has completed successfully.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
report + + +PreflightTestReport + + + + +

Results of the test.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

failed

+ + +
+
+ + +
+

Preflight test has encountered a failure and is now stopped.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError +| + +Error + + + + +

A TwilioError or a DOMException. +Possible TwilioErrors include Signaling and Media related errors which can be found +here.

report + + +PreflightTestReport + + + + +

Partial results gathered during the test. Use this information to help determine the cause of failure.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

progress

+ + +
+
+ + +
+

Emitted to indicate progress of the test

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
progress + + +PreflightProgress + + + + +

Indicates the status completed.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disabled

+ + +
+
+ + +
+

The RemoteAudioTrack was disabled, i.e. "muted".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

The RemoteAudioTrack that was +disabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The RemoteAudioTrack was enabled, i.e. "unmuted".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

The RemoteAudioTrack that was +enabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The RemoteAudioTrack started. This means there is enough audio data +to begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

The RemoteAudioTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOff

+ + +
+
+ + +
+

A RemoteAudioTrack was switched off.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

The RemoteAudioTrack that was +switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOn

+ + +
+
+ + +
+

A RemoteAudioTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

The RemoteAudioTrack that was +switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscribed

+ + +
+
+ + +
+

Your LocalParticipant subscribed to the RemoteAudioTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

the RemoteAudioTrack that was subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscriptionFailed

+ + +
+
+ + +
+

Your LocalParticipant failed to subscribe to the RemoteAudioTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

the reason the RemoteAudioTrack could not be +subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The RemoteAudioTrack was disabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The RemoteAudioTrack was enabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unsubscribed

+ + +
+
+ + +
+

Your LocalParticipant unsubscribed from the RemoteAudioTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

the RemoteAudioTrack that was unsubscribed from

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

message

+ + +
+
+ + +
+

A message was received over the RemoteDataTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
data + + +string +| + +ArrayBuffer + + + + +
track + + +RemoteDataTrack + + + + +

The RemoteDataTrack that received +the message

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOff

+ + +
+
+ + +
+

A RemoteDataTrack was switched off.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteDataTrack + + + + +

The RemoteDataTrack that was +switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOn

+ + +
+
+ + +
+

A RemoteDataTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteDataTrack + + + + +

The RemoteDataTrack that was +switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscribed

+ + +
+
+ + +
+

Your LocalParticipant subscribed to the RemoteDataTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteDataTrack + + + + +

the RemoteDataTrack that was subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscriptionFailed

+ + +
+
+ + +
+

Your LocalParticipant failed to subscribe to the RemoteDataTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

the reason the RemoteDataTrack could not be +subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unsubscribed

+ + +
+
+ + +
+

Your LocalParticipant unsubscribed from the RemoteDataTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteDataTrack + + + + +

the RemoteDataTrack that was unsubscribed from

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disconnected

+ + +
+
+ + +
+

The Participant has disconnected.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +Participant + + + + +

The Participant that disconnected.

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

networkQualityLevelChanged

+ + +
+
+ + +
+

The Participant's NetworkQualityLevel changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
networkQualityLevel + + +NetworkQualityLevel + + + + + + + + + + +

The new +NetworkQualityLevel

networkQualityStats + + +NetworkQualityStats + + + + + + + + + <nullable>
+ + + +

The NetworkQualityStats +based on which NetworkQualityLevel is calculated, if any

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnected

+ + +
+
+ + +
+

The RemoteParticipant has reconnected to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnecting

+ + +
+
+ + +
+

The RemoteParticipant is reconnecting to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDimensionsChanged

+ + +
+
+ + +
+

One of the RemoteParticipant's RemoteVideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack whose dimensions changed

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

A RemoteTrack was disabled by the RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication associated with the disabled RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

A RemoteTrack was enabled by the RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication associated with the enabled RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackMessage

+ + +
+
+ + +
+

A message was received over one of the RemoteParticipant's +RemoteDataTracks.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
data + + +string +| + +ArrayBuffer + + + + +
track + + +RemoteDataTrack + + + + +

The RemoteDataTrack over which the +message was received

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackPublished

+ + +
+
+ + +
+

A RemoteTrack was published by the RemoteParticipant after +connecting to the Room. This event is not emitted for +RemoteTracks that were published while the RemoteParticipant +was connecting to the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +which represents the published RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
function trackPublished(publication) {
+  console.log(`Track ${publication.trackSid} was published`);
+}
+
+room.on('participantConnected', participant => {
+  // Handle RemoteTracks published while connecting to the Room.
+  participant.trackPublications.forEach(trackPublished);
+
+  // Handle RemoteTracks published after connecting to the Room.
+  participant.on('trackPublished', trackPublished);
+});
+ + + +
+ + + +
+
+

trackPublishPriorityChanged

+ + +
+
+ + +
+

The RemoteTrackPublication's publish Track.Priority was changed by the +RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
priority + + +Track.Priority + + + + +

the RemoteTrack's new publish +Track.Priority;

publication + + +RemoteTrackPublication + + + + +

The +RemoteTrackPublication for the RemoteTrack that changed priority

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackStarted

+ + +
+
+ + +
+

One of the RemoteParticipant's RemoteTracks started.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSubscribed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was subscribed to.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was subscribed to

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSubscriptionFailed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack could not be subscribed to.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

The reason the RemoteTrack could not be +subscribed to

publication + + +RemoteTrackPublication + + + + +

The +RemoteTrackPublication for the RemoteTrack that could not +be subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOff

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was subscribed to.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was switched off

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOn

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was switched on.

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackUnpublished

+ + +
+
+ + +
+

A RemoteTrack was unpublished by the RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +which represents the unpublished RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackUnsubscribed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was unsubscribed from.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was unsubscribed from

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was unsubscribed from

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

publishPriorityChanged

+ + +
+
+ + +
+

The RemoteTrack's publish Track.Priority was changed by the +RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
priority + + +Track.Priority + + + + +

the RemoteTrack's new publish +Track.Priority; RemoteTrackPublication#publishPriority is also +updated accordingly

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscribed

+ + +
+
+ + +
+

Your LocalParticipant subscribed to the RemoteTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

the RemoteTrack that was subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscriptionFailed

+ + +
+
+ + +
+

Your LocalParticipant failed to subscribe to the RemoteTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

the reason the RemoteTrack could not be +subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The RemoteTrack was disabled.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The RemoteTrack was enabled.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOff

+ + +
+
+ + +
+

The RemoteTrack was switched off.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

the RemoteTrack that was switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOn

+ + +
+
+ + +
+

The RemoteTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

the RemoteTrack that was switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unsubscribed

+ + +
+
+ + +
+

Your LocalParticipant unsubscribed from the RemoteTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

the RemoteTrack that was unsubscribed from

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

dimensionsChanged

+ + +
+
+ + +
+

The RemoteVideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack whose +dimensions changed

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disabled

+ + +
+
+ + +
+

The RemoteVideoTrack was disabled, i.e. "paused".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack that was +disabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The RemoteVideoTrack was enabled, i.e. "resumed".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack that was +enabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The RemoteVideoTrack started. This means there is enough video data +to begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOff

+ + +
+
+ + +
+

A RemoteVideoTrack was switched off.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack that was +switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOn

+ + +
+
+ + +
+

A RemoteVideoTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack that was +switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscribed

+ + +
+
+ + +
+

Your LocalParticipant subscribed to the RemoteVideoTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

the RemoteVideoTrack that was subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscriptionFailed

+ + +
+
+ + +
+

Your LocalParticipant failed to subscribe to the RemoteVideoTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

the reason the RemoteVideoTrack could not be +subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The RemoteVideoTrack was disabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The RemoteVideoTrack was enabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unsubscribed

+ + +
+
+ + +
+

Your LocalParticipant unsubscribed from the RemoteVideoTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

the RemoteVideoTrack that was unsubscribed from

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disconnected

+ + +
+
+ + +
+

Your LocalParticipant was disconnected from the Room and all +other RemoteParticipants.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
room + + +Room + + + + + + + + + + +

The Room your +LocalParticipant was disconnected from

error + + +TwilioError + + + + + + + + + <nullable>
+ + + +

Present when the LocalParticipant got +disconnected from the Room unexpectedly

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('disconnected', function(room, error) {
+  if (error) {
+    console.log('Unexpectedly disconnected:', error);
+  }
+  myRoom.localParticipant.tracks.forEach(function(track) {
+    track.stop();
+    track.detach();
+  });
+});
+ + + +
+ + + +
+
+

dominantSpeakerChanged

+ + +
+
+ + +
+

The Dominant Speaker in the Room changed. Either the Dominant Speaker +is a new RemoteParticipant or the Dominant Speaker has been reset and +is now null.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
dominantSpeaker + + +RemoteParticipant + + + + + + + + + <nullable>
+ + + +

The Dominant Speaker in the +Room, if any

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

participantConnected

+ + +
+
+ + +
+

A RemoteParticipant joined the Room. In Large Group Rooms (Maximum +Participants greater than 50), this event is raised only when a RemoteParticipant +publishes at least one LocalTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +RemoteParticipant + + + + +

The RemoteParticipant who joined

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('participantConnected', function(participant) {
+  console.log(participant.identity + ' joined the Room');
+});
+ + + +
+ + + +
+
+

participantDisconnected

+ + +
+
+ + +
+

A RemoteParticipant left the Room. In Large Group Rooms (Maximum +Participants greater than 50), this event is raised only when a RemoteParticipant +unpublishes all its LocalTracks.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +RemoteParticipant + + + + +

The RemoteParticipant who left

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('participantDisconnected', function(participant) {
+  console.log(participant.identity + ' left the Room');
+  participant.tracks.forEach(function(track) {
+    track.detach().forEach(function(mediaElement) {
+      mediaElement.remove();
+    });
+  });
+});
+ + + +
+ + + +
+
+

participantReconnected

+ + +
+
+ + +
+

A RemoteParticipant has reconnected to the Room after a signaling connection disruption.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +RemoteParticipant + + + + +

The RemoteParticipant that has reconnected.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('participantReconnected', participant => {
+  console.log(participant.identity + ' reconnected to the Room');
+});
+ + + +
+ + + +
+
+

participantReconnecting

+ + +
+
+ + +
+

A RemoteParticipant is reconnecting to the Room after a signaling connection disruption.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +RemoteParticipant + + + + +

The RemoteParticipant that is reconnecting.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('participantReconnecting', participant => {
+  console.log(participant.identity + ' is reconnecting to the Room');
+});
+ + + +
+ + + +
+
+

reconnected

+ + +
+
+ + +
+

Your application successfully reconnected to the Room. When this +event is emitted, the Room is in state "connected".

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('reconnected', () => {
+  console.log('Reconnected!');
+});
+ + + +
+ + + +
+
+

reconnecting

+ + +
+
+ + +
+

Your application is reconnecting to the Room. This happens when there +is a disruption in your signaling connection and/or your media connection. When +this event is emitted, the Room is in state "reconnecting". If reconnecting +succeeds, the Room will emit a "reconnected" event.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +MediaConnectionError +| + +SignalingConnectionDisconnectedError + + + + +

A +MediaConnectionError if your application is reconnecting due to a +disruption in your media connection, or a SignalingConnectionDisconnectedError +if your application is reconnecting due to a disruption in your signaling connection

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('reconnecting', error => {
+  if (error.code === 53001) {
+    console.log('Reconnecting your signaling connection!', error.message);
+  } else if (error.code === 53405) {
+    console.log('Reconnecting your media connection!', error.message);
+  }
+});
+ + + +
+ + + +
+
+

recordingStarted

+ + +
+
+ + +
+

The Room is now being recorded

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

recordingStopped

+ + +
+
+ + +
+

The Room is no longer being recorded

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDimensionsChanged

+ + +
+
+ + +
+

One of the RemoteParticipant's VideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack whose dimensions changed

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteVideoTrack's dimensions changed

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

A RemoteTrack was disabled by a RemoteParticipant in the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication that represents disabled RemoteTrack

participant + + +RemoteParticipant + + + + +

The RemoteParticipant who +disabled the RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

A RemoteTrack was enabled by a RemoteParticipant in the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication that represents enabled RemoteTrack

participant + + +RemoteParticipant + + + + +

The RemoteParticipant who +enabled the RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackMessage

+ + +
+
+ + +
+

A message was received over one of the RemoteParticipant's +RemoteDataTrack's.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
data + + +string +| + +ArrayBuffer + + + + +
track + + +RemoteDataTrack + + + + +

The RemoteDataTrack over which the +message was received

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteDataTrack received the message

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackPublished

+ + +
+
+ + +
+

A RemoteTrack was published by a RemoteParticipant after +connecting to the Room. This event is not emitted for +RemoteTracks that were published while the RemoteParticipant +was connecting to the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +which represents the published RemoteTrack

participant + + +RemoteParticipant + + + + +

The RemoteParticipant who +published the RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
function trackPublished(publication, participant) {
+  console.log(`RemoteParticipant ${participant.sid} published Track ${publication.trackSid}`);
+}
+
+// Handle RemoteTracks published after connecting to the Room.
+room.on('trackPublished', trackPublished);
+
+room.on('participantConnected', participant => {
+  // Handle RemoteTracks published while connecting to the Room.
+  participant.trackPublications.forEach(publication => trackPublished(publication, participant));
+});
+ + + +
+ + + +
+
+

trackPublishPriorityChanged

+ + +
+
+ + +
+

The RemoteTrack's publish Track.Priority was changed by the +RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
priority + + +Track.Priority + + + + +

the RemoteTrack's new publish +Track.Priority;

publication + + +RemoteTrackPublication + + + + +

The +RemoteTrackPublication for the RemoteTrack that changed priority

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack changed priority

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackStarted

+ + +
+
+ + +
+

One of a RemoteParticipant's RemoteTracks in the Room started.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that started

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack started

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSubscribed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was subscribed to.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was subscribed

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was subscribed to

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack was subscribed

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
room.on('trackSubscribed', function(track, publication, participant) {
+  var participantView = document.getElementById('participant-view-' + participant.identity);
+  participantView.appendChild(track.attach());
+});
+ + + +
+ + + +
+
+

trackSubscriptionFailed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack could not be subscribed to.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

The reason the RemoteTrack could not be +subscribed to

publication + + +RemoteTrackPublication + + + + +

The +RemoteTrackPublication for the RemoteTrack that could not +be subscribed to

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack could not be subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOff

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was switched off.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was switched off

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was subscribed to

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack was switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOn

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was switched on

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was subscribed to

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack was switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackUnpublished

+ + +
+
+ + +
+

A RemoteTrack was unpublished by a RemoteParticipant to the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +which represents the unpublished RemoteTrack

participant + + +RemoteParticipant + + + + +

The RemoteParticipant who +unpublished the RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackUnsubscribed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was unsubscribed from.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was unsubscribed

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was unsubscribed from

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack was unsubscribed

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
room.on('trackUnsubscribed', function(track, publication, participant) {
+  track.detach().forEach(function(mediaElement) {
+    mediaElement.remove();
+  });
+});
+ + + +
+ + + +
+
+

trackWarning

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTrackPublications in the Room encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

publication + + +LocalTrackPublication + + + + +

The LocalTrackPublication that encountered the warning.

participant + + +LocalParticipant + + + + +

The LocalParticipant

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
room.on('trackWarning', (name, publication, participant) => {
+  if (name === 'recording-media-lost') {
+    log(`LocalTrack ${publication.track.name} is not recording media.`,
+      name, publication, participant);
+
+    // Wait a reasonable amount of time to clear the warning.
+    const timer = setTimeout(() => {
+      // If the warning is not cleared, you can manually
+      // reconnect to the room, or show a dialog to the user
+    }, 5000);
+
+    room.once('trackWarningsCleared', (publication, participant) => {
+      log('LocalTrack warnings have cleared!',
+        publication, participant);
+      clearTimeout(timer);
+    });
+  }
+});
+ + + +
+ + + +
+
+

trackWarningsCleared

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTrackPublications in the Room cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +LocalTrackPublication + + + + +

The LocalTrackPublication that cleared all warnings.

participant + + +LocalParticipant + + + + +

The LocalParticipant

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The published Track was disabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The published Track was enabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

dimensionsChanged

+ + +
+
+ + +
+

The VideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack whose dimensions changed

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disabled

+ + +
+
+ + +
+

The VideoTrack was disabled, i.e. "paused".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack that was disabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The VideoTrack was enabled, i.e. "unpaused".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack that was enabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The VideoTrack started. This means there is enough video data to +begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack that started

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/fonts/glyphicons-halflings-regular.eot b/dist/docs/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..b93a4953fff68df523aa7656497ee339d6026d64 GIT binary patch literal 20127 zcma%hV{j!vx9y2-`@~L8?1^pLwlPU2wr$&<*tR|KBoo`2;LUg6eW-eW-tKDb)vH%` z^`A!Vd<6hNSRMcX|Cb;E|1qflDggj6Kmr)xA10^t-vIc3*Z+F{r%|K(GyE^?|I{=9 zNq`(c8=wS`0!RZy0g3{M(8^tv41d}oRU?8#IBFtJy*9zAN5dcxqGlMZGL>GG%R#)4J zDJ2;)4*E1pyHia%>lMv3X7Q`UoFyoB@|xvh^)kOE3)IL&0(G&i;g08s>c%~pHkN&6 z($7!kyv|A2DsV2mq-5Ku)D#$Kn$CzqD-wm5Q*OtEOEZe^&T$xIb0NUL}$)W)Ck`6oter6KcQG9Zcy>lXip)%e&!lQgtQ*N`#abOlytt!&i3fo)cKV zP0BWmLxS1gQv(r_r|?9>rR0ZeEJPx;Vi|h1!Eo*dohr&^lJgqJZns>&vexP@fs zkPv93Nyw$-kM5Mw^{@wPU47Y1dSkiHyl3dtHLwV&6Tm1iv{ve;sYA}Z&kmH802s9Z zyJEn+cfl7yFu#1^#DbtP7k&aR06|n{LnYFYEphKd@dJEq@)s#S)UA&8VJY@S2+{~> z(4?M();zvayyd^j`@4>xCqH|Au>Sfzb$mEOcD7e4z8pPVRTiMUWiw;|gXHw7LS#U< zsT(}Z5SJ)CRMXloh$qPnK77w_)ctHmgh}QAe<2S{DU^`!uwptCoq!Owz$u6bF)vnb zL`bM$%>baN7l#)vtS3y6h*2?xCk z>w+s)@`O4(4_I{L-!+b%)NZcQ&ND=2lyP+xI#9OzsiY8$c)ys-MI?TG6 zEP6f=vuLo!G>J7F4v|s#lJ+7A`^nEQScH3e?B_jC&{sj>m zYD?!1z4nDG_Afi$!J(<{>z{~Q)$SaXWjj~%ZvF152Hd^VoG14rFykR=_TO)mCn&K$ z-TfZ!vMBvnToyBoKRkD{3=&=qD|L!vb#jf1f}2338z)e)g>7#NPe!FoaY*jY{f)Bf>ohk-K z4{>fVS}ZCicCqgLuYR_fYx2;*-4k>kffuywghn?15s1dIOOYfl+XLf5w?wtU2Og*f z%X5x`H55F6g1>m~%F`655-W1wFJtY>>qNSdVT`M`1Mlh!5Q6#3j={n5#za;!X&^OJ zgq;d4UJV-F>gg?c3Y?d=kvn3eV)Jb^ zO5vg0G0yN0%}xy#(6oTDSVw8l=_*2k;zTP?+N=*18H5wp`s90K-C67q{W3d8vQGmr zhpW^>1HEQV2TG#8_P_0q91h8QgHT~8=-Ij5snJ3cj?Jn5_66uV=*pq(j}yHnf$Ft;5VVC?bz%9X31asJeQF2jEa47H#j` zk&uxf3t?g!tltVP|B#G_UfDD}`<#B#iY^i>oDd-LGF}A@Fno~dR72c&hs6bR z2F}9(i8+PR%R|~FV$;Ke^Q_E_Bc;$)xN4Ti>Lgg4vaip!%M z06oxAF_*)LH57w|gCW3SwoEHwjO{}}U=pKhjKSZ{u!K?1zm1q? zXyA6y@)}_sONiJopF}_}(~}d4FDyp|(@w}Vb;Fl5bZL%{1`}gdw#i{KMjp2@Fb9pg ziO|u7qP{$kxH$qh8%L+)AvwZNgUT6^zsZq-MRyZid{D?t`f|KzSAD~C?WT3d0rO`0 z=qQ6{)&UXXuHY{9g|P7l_nd-%eh}4%VVaK#Nik*tOu9lBM$<%FS@`NwGEbP0&;Xbo zObCq=y%a`jSJmx_uTLa{@2@}^&F4c%z6oe-TN&idjv+8E|$FHOvBqg5hT zMB=7SHq`_-E?5g=()*!V>rIa&LcX(RU}aLm*38U_V$C_g4)7GrW5$GnvTwJZdBmy6 z*X)wi3=R8L=esOhY0a&eH`^fSpUHV8h$J1|o^3fKO|9QzaiKu>yZ9wmRkW?HTkc<*v7i*ylJ#u#j zD1-n&{B`04oG>0Jn{5PKP*4Qsz{~`VVA3578gA+JUkiPc$Iq!^K|}*p_z3(-c&5z@ zKxmdNpp2&wg&%xL3xZNzG-5Xt7jnI@{?c z25=M>-VF|;an2Os$Nn%HgQz7m(ujC}Ii0Oesa(y#8>D+P*_m^X##E|h$M6tJr%#=P zWP*)Px>7z`E~U^2LNCNiy%Z7!!6RI%6fF@#ZY3z`CK91}^J$F!EB0YF1je9hJKU7!S5MnXV{+#K;y zF~s*H%p@vj&-ru7#(F2L+_;IH46X(z{~HTfcThqD%b{>~u@lSc<+f5#xgt9L7$gSK ziDJ6D*R%4&YeUB@yu@4+&70MBNTnjRyqMRd+@&lU#rV%0t3OmouhC`mkN}pL>tXin zY*p)mt=}$EGT2E<4Q>E2`6)gZ`QJhGDNpI}bZL9}m+R>q?l`OzFjW?)Y)P`fUH(_4 zCb?sm1=DD0+Q5v}BW#0n5;Nm(@RTEa3(Y17H2H67La+>ptQHJ@WMy2xRQT$|7l`8c zYHCxYw2o-rI?(fR2-%}pbs$I%w_&LPYE{4bo}vRoAW>3!SY_zH3`ofx3F1PsQ?&iq z*BRG>?<6%z=x#`NhlEq{K~&rU7Kc7Y-90aRnoj~rVoKae)L$3^z*Utppk?I`)CX&& zZ^@Go9fm&fN`b`XY zt0xE5aw4t@qTg_k=!-5LXU+_~DlW?53!afv6W(k@FPPX-`nA!FBMp7b!ODbL1zh58 z*69I}P_-?qSLKj}JW7gP!la}K@M}L>v?rDD!DY-tu+onu9kLoJz20M4urX_xf2dfZ zORd9Zp&28_ff=wdMpXi%IiTTNegC}~RLkdYjA39kWqlA?jO~o1`*B&85Hd%VPkYZT z48MPe62;TOq#c%H(`wX5(Bu>nlh4Fbd*Npasdhh?oRy8a;NB2(eb}6DgwXtx=n}fE zx67rYw=(s0r?EsPjaya}^Qc-_UT5|*@|$Q}*|>V3O~USkIe6a0_>vd~6kHuP8=m}_ zo2IGKbv;yA+TBtlCpnw)8hDn&eq?26gN$Bh;SdxaS04Fsaih_Cfb98s39xbv)=mS0 z6M<@pM2#pe32w*lYSWG>DYqB95XhgAA)*9dOxHr{t)er0Xugoy)!Vz#2C3FaUMzYl zCxy{igFB901*R2*F4>grPF}+G`;Yh zGi@nRjWyG3mR(BVOeBPOF=_&}2IWT%)pqdNAcL{eP`L*^FDv#Rzql5U&Suq_X%JfR_lC!S|y|xd5mQ0{0!G#9hV46S~A` z0B!{yI-4FZEtol5)mNWXcX(`x&Pc*&gh4k{w%0S#EI>rqqlH2xv7mR=9XNCI$V#NG z4wb-@u{PfQP;tTbzK>(DF(~bKp3;L1-A*HS!VB)Ae>Acnvde15Anb`h;I&0)aZBS6 z55ZS7mL5Wp!LCt45^{2_70YiI_Py=X{I3>$Px5Ez0ahLQ+ z9EWUWSyzA|+g-Axp*Lx-M{!ReQO07EG7r4^)K(xbj@%ZU=0tBC5shl)1a!ifM5OkF z0w2xQ-<+r-h1fi7B6waX15|*GGqfva)S)dVcgea`lQ~SQ$KXPR+(3Tn2I2R<0 z9tK`L*pa^+*n%>tZPiqt{_`%v?Bb7CR-!GhMON_Fbs0$#|H}G?rW|{q5fQhvw!FxI zs-5ZK>hAbnCS#ZQVi5K0X3PjL1JRdQO+&)*!oRCqB{wen60P6!7bGiWn@vD|+E@Xq zb!!_WiU^I|@1M}Hz6fN-m04x=>Exm{b@>UCW|c8vC`aNbtA@KCHujh^2RWZC}iYhL^<*Z93chIBJYU&w>$CGZDRcHuIgF&oyesDZ#&mA;?wxx4Cm#c0V$xYG?9OL(Smh}#fFuX(K;otJmvRP{h ze^f-qv;)HKC7geB92_@3a9@MGijS(hNNVd%-rZ;%@F_f7?Fjinbe1( zn#jQ*jKZTqE+AUTEd3y6t>*=;AO##cmdwU4gc2&rT8l`rtKW2JF<`_M#p>cj+)yCG zgKF)y8jrfxTjGO&ccm8RU>qn|HxQ7Z#sUo$q)P5H%8iBF$({0Ya51-rA@!It#NHN8MxqK zrYyl_&=}WVfQ?+ykV4*@F6)=u_~3BebR2G2>>mKaEBPmSW3(qYGGXj??m3L zHec{@jWCsSD8`xUy0pqT?Sw0oD?AUK*WxZn#D>-$`eI+IT)6ki>ic}W)t$V32^ITD zR497@LO}S|re%A+#vdv-?fXsQGVnP?QB_d0cGE+U84Q=aM=XrOwGFN3`Lpl@P0fL$ zKN1PqOwojH*($uaQFh8_)H#>Acl&UBSZ>!2W1Dinei`R4dJGX$;~60X=|SG6#jci} z&t4*dVDR*;+6Y(G{KGj1B2!qjvDYOyPC}%hnPbJ@g(4yBJrViG1#$$X75y+Ul1{%x zBAuD}Q@w?MFNqF-m39FGpq7RGI?%Bvyyig&oGv)lR>d<`Bqh=p>urib5DE;u$c|$J zwim~nPb19t?LJZsm{<(Iyyt@~H!a4yywmHKW&=1r5+oj*Fx6c89heW@(2R`i!Uiy* zp)=`Vr8sR!)KChE-6SEIyi(dvG3<1KoVt>kGV=zZiG7LGonH1+~yOK-`g0)r#+O|Q>)a`I2FVW%wr3lhO(P{ksNQuR!G_d zeTx(M!%brW_vS9?IF>bzZ2A3mWX-MEaOk^V|4d38{1D|KOlZSjBKrj7Fgf^>JyL0k zLoI$adZJ0T+8i_Idsuj}C;6jgx9LY#Ukh;!8eJ^B1N}q=Gn4onF*a2vY7~`x$r@rJ z`*hi&Z2lazgu{&nz>gjd>#eq*IFlXed(%$s5!HRXKNm zDZld+DwDI`O6hyn2uJ)F^{^;ESf9sjJ)wMSKD~R=DqPBHyP!?cGAvL<1|7K-(=?VO zGcKcF1spUa+ki<`6K#@QxOTsd847N8WSWztG~?~ z!gUJn>z0O=_)VCE|56hkT~n5xXTp}Ucx$Ii%bQ{5;-a4~I2e|{l9ur#*ghd*hSqO= z)GD@ev^w&5%k}YYB~!A%3*XbPPU-N6&3Lp1LxyP@|C<{qcn&?l54+zyMk&I3YDT|E z{lXH-e?C{huu<@~li+73lMOk&k)3s7Asn$t6!PtXJV!RkA`qdo4|OC_a?vR!kE_}k zK5R9KB%V@R7gt@9=TGL{=#r2gl!@3G;k-6sXp&E4u20DgvbY$iE**Xqj3TyxK>3AU z!b9}NXuINqt>Htt6fXIy5mj7oZ{A&$XJ&thR5ySE{mkxq_YooME#VCHm2+3D!f`{) zvR^WSjy_h4v^|!RJV-RaIT2Ctv=)UMMn@fAgjQV$2G+4?&dGA8vK35c-8r)z9Qqa=%k(FU)?iec14<^olkOU3p zF-6`zHiDKPafKK^USUU+D01>C&Wh{{q?>5m zGQp|z*+#>IIo=|ae8CtrN@@t~uLFOeT{}vX(IY*;>wAU=u1Qo4c+a&R);$^VCr>;! zv4L{`lHgc9$BeM)pQ#XA_(Q#=_iSZL4>L~8Hx}NmOC$&*Q*bq|9Aq}rWgFnMDl~d*;7c44GipcpH9PWaBy-G$*MI^F0 z?Tdxir1D<2ui+Q#^c4?uKvq=p>)lq56=Eb|N^qz~w7rsZu)@E4$;~snz+wIxi+980O6M#RmtgLYh@|2}9BiHSpTs zacjGKvwkUwR3lwTSsCHlwb&*(onU;)$yvdhikonn|B44JMgs*&Lo!jn`6AE>XvBiO z*LKNX3FVz9yLcsnmL!cRVO_qv=yIM#X|u&}#f%_?Tj0>8)8P_0r0!AjWNw;S44tst zv+NXY1{zRLf9OYMr6H-z?4CF$Y%MdbpFIN@a-LEnmkcOF>h16cH_;A|e)pJTuCJ4O zY7!4FxT4>4aFT8a92}84>q0&?46h>&0Vv0p>u~k&qd5$C1A6Q$I4V(5X~6{15;PD@ ze6!s9xh#^QI`J+%8*=^(-!P!@9%~buBmN2VSAp@TOo6}C?az+ALP8~&a0FWZk*F5N z^8P8IREnN`N0i@>O0?{i-FoFShYbUB`D7O4HB`Im2{yzXmyrg$k>cY6A@>bf7i3n0 z5y&cf2#`zctT>dz+hNF&+d3g;2)U!#vsb-%LC+pqKRTiiSn#FH#e!bVwR1nAf*TG^ z!RKcCy$P>?Sfq6n<%M{T0I8?p@HlgwC!HoWO>~mT+X<{Ylm+$Vtj9};H3$EB}P2wR$3y!TO#$iY8eO-!}+F&jMu4%E6S>m zB(N4w9O@2=<`WNJay5PwP8javDp~o~xkSbd4t4t8)9jqu@bHmJHq=MV~Pt|(TghCA}fhMS?s-{klV>~=VrT$nsp7mf{?cze~KKOD4 z_1Y!F)*7^W+BBTt1R2h4f1X4Oy2%?=IMhZU8c{qk3xI1=!na*Sg<=A$?K=Y=GUR9@ zQ(ylIm4Lgm>pt#%p`zHxok%vx_=8Fap1|?OM02|N%X-g5_#S~sT@A!x&8k#wVI2lo z1Uyj{tDQRpb*>c}mjU^gYA9{7mNhFAlM=wZkXcA#MHXWMEs^3>p9X)Oa?dx7b%N*y zLz@K^%1JaArjgri;8ptNHwz1<0y8tcURSbHsm=26^@CYJ3hwMaEvC7 z3Wi-@AaXIQ)%F6#i@%M>?Mw7$6(kW@?et@wbk-APcvMCC{>iew#vkZej8%9h0JSc? zCb~K|!9cBU+))^q*co(E^9jRl7gR4Jihyqa(Z(P&ID#TPyysVNL7(^;?Gan!OU>au zN}miBc&XX-M$mSv%3xs)bh>Jq9#aD_l|zO?I+p4_5qI0Ms*OZyyxA`sXcyiy>-{YN zA70%HmibZYcHW&YOHk6S&PQ+$rJ3(utuUra3V0~@=_~QZy&nc~)AS>v&<6$gErZC3 zcbC=eVkV4Vu0#}E*r=&{X)Kgq|8MGCh(wsH4geLj@#8EGYa})K2;n z{1~=ghoz=9TSCxgzr5x3@sQZZ0FZ+t{?klSI_IZa16pSx6*;=O%n!uXVZ@1IL;JEV zfOS&yyfE9dtS*^jmgt6>jQDOIJM5Gx#Y2eAcC3l^lmoJ{o0T>IHpECTbfYgPI4#LZq0PKqnPCD}_ zyKxz;(`fE0z~nA1s?d{X2!#ZP8wUHzFSOoTWQrk%;wCnBV_3D%3@EC|u$Ao)tO|AO z$4&aa!wbf}rbNcP{6=ajgg(`p5kTeu$ji20`zw)X1SH*x zN?T36{d9TY*S896Ijc^!35LLUByY4QO=ARCQ#MMCjudFc7s!z%P$6DESz%zZ#>H|i zw3Mc@v4~{Eke;FWs`5i@ifeYPh-Sb#vCa#qJPL|&quSKF%sp8*n#t?vIE7kFWjNFh zJC@u^bRQ^?ra|%39Ux^Dn4I}QICyDKF0mpe+Bk}!lFlqS^WpYm&xwIYxUoS-rJ)N9 z1Tz*6Rl9;x`4lwS1cgW^H_M*)Dt*DX*W?ArBf?-t|1~ge&S}xM0K;U9Ibf{okZHf~ z#4v4qc6s6Zgm8iKch5VMbQc~_V-ZviirnKCi*ouN^c_2lo&-M;YSA>W>>^5tlXObg zacX$k0=9Tf$Eg+#9k6yV(R5-&F{=DHP8!yvSQ`Y~XRnUx@{O$-bGCksk~3&qH^dqX zkf+ZZ?Nv5u>LBM@2?k%k&_aUb5Xjqf#!&7%zN#VZwmv65ezo^Y4S#(ed0yUn4tFOB zh1f1SJ6_s?a{)u6VdwUC!Hv=8`%T9(^c`2hc9nt$(q{Dm2X)dK49ba+KEheQ;7^0) ziFKw$%EHy_B1)M>=yK^=Z$U-LT36yX>EKT zvD8IAom2&2?bTmX@_PBR4W|p?6?LQ+&UMzXxqHC5VHzf@Eb1u)kwyfy+NOM8Wa2y@ zNNDL0PE$F;yFyf^jy&RGwDXQwYw6yz>OMWvJt98X@;yr!*RQDBE- zE*l*u=($Zi1}0-Y4lGaK?J$yQjgb+*ljUvNQ!;QYAoCq@>70=sJ{o{^21^?zT@r~hhf&O;Qiq+ ziGQQLG*D@5;LZ%09mwMiE4Q{IPUx-emo*;a6#DrmWr(zY27d@ezre)Z1BGZdo&pXn z+);gOFelKDmnjq#8dL7CTiVH)dHOqWi~uE|NM^QI3EqxE6+_n>IW67~UB#J==QOGF zp_S)c8TJ}uiaEiaER}MyB(grNn=2m&0yztA=!%3xUREyuG_jmadN*D&1nxvjZ6^+2 zORi7iX1iPi$tKasppaR9$a3IUmrrX)m*)fg1>H+$KpqeB*G>AQV((-G{}h=qItj|d zz~{5@{?&Dab6;0c7!!%Se>w($RmlG7Jlv_zV3Ru8b2rugY0MVPOOYGlokI7%nhIy& z-B&wE=lh2dtD!F?noD{z^O1~Tq4MhxvchzuT_oF3-t4YyA*MJ*n&+1X3~6quEN z@m~aEp=b2~mP+}TUP^FmkRS_PDMA{B zaSy(P=$T~R!yc^Ye0*pl5xcpm_JWI;@-di+nruhqZ4gy7cq-)I&s&Bt3BkgT(Zdjf zTvvv0)8xzntEtp4iXm}~cT+pi5k{w{(Z@l2XU9lHr4Vy~3ycA_T?V(QS{qwt?v|}k z_ST!s;C4!jyV5)^6xC#v!o*uS%a-jQ6< z)>o?z7=+zNNtIz1*F_HJ(w@=`E+T|9TqhC(g7kKDc8z~?RbKQ)LRMn7A1p*PcX2YR zUAr{);~c7I#3Ssv<0i-Woj0&Z4a!u|@Xt2J1>N-|ED<3$o2V?OwL4oQ%$@!zLamVz zB)K&Ik^~GOmDAa143{I4?XUk1<3-k{<%?&OID&>Ud%z*Rkt*)mko0RwC2=qFf-^OV z=d@47?tY=A;=2VAh0mF(3x;!#X!%{|vn;U2XW{(nu5b&8kOr)Kop3-5_xnK5oO_3y z!EaIb{r%D{7zwtGgFVri4_!yUIGwR(xEV3YWSI_+E}Gdl>TINWsIrfj+7DE?xp+5^ zlr3pM-Cbse*WGKOd3+*Qen^*uHk)+EpH-{u@i%y}Z!YSid<}~kA*IRSk|nf+I1N=2 zIKi+&ej%Al-M5`cP^XU>9A(m7G>58>o|}j0ZWbMg&x`*$B9j#Rnyo0#=BMLdo%=ks zLa3(2EinQLXQ(3zDe7Bce%Oszu%?8PO648TNst4SMFvj=+{b%)ELyB!0`B?9R6aO{i-63|s@|raSQGL~s)9R#J#duFaTSZ2M{X z1?YuM*a!!|jP^QJ(hAisJuPOM`8Y-Hzl~%d@latwj}t&0{DNNC+zJARnuQfiN`HQ# z?boY_2?*q;Qk)LUB)s8(Lz5elaW56p&fDH*AWAq7Zrbeq1!?FBGYHCnFgRu5y1jwD zc|yBz+UW|X`zDsc{W~8m$sh@VVnZD$lLnKlq@Hg^;ky!}ZuPdKNi2BI70;hrpvaA4+Q_+K)I@|)q1N-H zrycZU`*YUW``Qi^`bDX-j7j^&bO+-Xg$cz2#i##($uyW{Nl&{DK{=lLWV3|=<&si||2)l=8^8_z+Vho-#5LB0EqQ3v5U#*DF7 zxT)1j^`m+lW}p$>WSIG1eZ>L|YR-@Feu!YNWiw*IZYh03mq+2QVtQ}1ezRJM?0PA< z;mK(J5@N8>u@<6Y$QAHWNE};rR|)U_&bv8dsnsza7{=zD1VBcxrALqnOf-qW(zzTn zTAp|pEo#FsQ$~*$j|~Q;$Zy&Liu9OM;VF@#_&*nL!N2hH!Q6l*OeTxq!l>dEc{;Hw zCQni{iN%jHU*C;?M-VUaXxf0FEJ_G=C8)C-wD!DvhY+qQ#FT3}Th8;GgV&AV94F`D ztT6=w_Xm8)*)dBnDkZd~UWL|W=Glu!$hc|1w7_7l!3MAt95oIp4Xp{M%clu&TXehO z+L-1#{mjkpTF@?|w1P98OCky~S%@OR&o75P&ZHvC}Y=(2_{ib(-Al_7aZ^U?s34#H}= zGfFi5%KnFVCKtdO^>Htpb07#BeCXMDO8U}crpe1Gm`>Q=6qB4i=nLoLZ%p$TY=OcP z)r}Et-Ed??u~f09d3Nx3bS@ja!fV(Dfa5lXxRs#;8?Y8G+Qvz+iv7fiRkL3liip}) z&G0u8RdEC9c$$rdU53=MH`p!Jn|DHjhOxHK$tW_pw9wCTf0Eo<){HoN=zG!!Gq4z4 z7PwGh)VNPXW-cE#MtofE`-$9~nmmj}m zlzZscQ2+Jq%gaB9rMgVJkbhup0Ggpb)&L01T=%>n7-?v@I8!Q(p&+!fd+Y^Pu9l+u zek(_$^HYFVRRIFt@0Fp52g5Q#I`tC3li`;UtDLP*rA{-#Yoa5qp{cD)QYhldihWe+ zG~zuaqLY~$-1sjh2lkbXCX;lq+p~!2Z=76cvuQe*Fl>IFwpUBP+d^&E4BGc{m#l%Kuo6#{XGoRyFc%Hqhf|%nYd<;yiC>tyEyk z4I+a`(%%Ie=-*n z-{mg=j&t12)LH3R?@-B1tEb7FLMePI1HK0`Ae@#)KcS%!Qt9p4_fmBl5zhO10n401 zBSfnfJ;?_r{%R)hh}BBNSl=$BiAKbuWrNGQUZ)+0=Mt&5!X*D@yGCSaMNY&@`;^a4 z;v=%D_!K!WXV1!3%4P-M*s%V2b#2jF2bk!)#2GLVuGKd#vNpRMyg`kstw0GQ8@^k^ zuqK5uR<>FeRZ#3{%!|4X!hh7hgirQ@Mwg%%ez8pF!N$xhMNQN((yS(F2-OfduxxKE zxY#7O(VGfNuLv-ImAw5+h@gwn%!ER;*Q+001;W7W^waWT%@(T+5k!c3A-j)a8y11t zx4~rSN0s$M8HEOzkcWW4YbKK9GQez2XJ|Nq?TFy;jmGbg;`m&%U4hIiarKmdTHt#l zL=H;ZHE?fYxKQQXKnC+K!TAU}r086{4m}r()-QaFmU(qWhJlc$eas&y?=H9EYQy8N$8^bni9TpDp zkA^WRs?KgYgjxX4T6?`SMs$`s3vlut(YU~f2F+id(Rf_)$BIMibk9lACI~LA+i7xn z%-+=DHV*0TCTJp~-|$VZ@g2vmd*|2QXV;HeTzt530KyK>v&253N1l}bP_J#UjLy4) zBJili9#-ey8Kj(dxmW^ctorxd;te|xo)%46l%5qE-YhAjP`Cc03vT)vV&GAV%#Cgb zX~2}uWNvh`2<*AuxuJpq>SyNtZwzuU)r@@dqC@v=Ocd(HnnzytN+M&|Qi#f4Q8D=h ziE<3ziFW%+!yy(q{il8H44g^5{_+pH60Mx5Z*FgC_3hKxmeJ+wVuX?T#ZfOOD3E4C zRJsj#wA@3uvwZwHKKGN{{Ag+8^cs?S4N@6(Wkd$CkoCst(Z&hp+l=ffZ?2m%%ffI3 zdV7coR`R+*dPbNx=*ivWeNJK=Iy_vKd`-_Hng{l?hmp=|T3U&epbmgXXWs9ySE|=G zeQ|^ioL}tveN{s72_&h+F+W;G}?;?_s@h5>DX(rp#eaZ!E=NivgLI zWykLKev+}sHH41NCRm7W>K+_qdoJ8x9o5Cf!)|qLtF7Izxk*p|fX8UqEY)_sI_45O zL2u>x=r5xLE%s|d%MO>zU%KV6QKFiEeo12g#bhei4!Hm+`~Fo~4h|BJ)%ENxy9)Up zOxupSf1QZWun=)gF{L0YWJ<(r0?$bPFANrmphJ>kG`&7E+RgrWQi}ZS#-CQJ*i#8j zM_A0?w@4Mq@xvk^>QSvEU|VYQoVI=TaOrsLTa`RZfe8{9F~mM{L+C`9YP9?OknLw| zmkvz>cS6`pF0FYeLdY%>u&XpPj5$*iYkj=m7wMzHqzZ5SG~$i_^f@QEPEC+<2nf-{ zE7W+n%)q$!5@2pBuXMxhUSi*%F>e_g!$T-_`ovjBh(3jK9Q^~OR{)}!0}vdTE^M+m z9QWsA?xG>EW;U~5gEuKR)Ubfi&YWnXV;3H6Zt^NE725*`;lpSK4HS1sN?{~9a4JkD z%}23oAovytUKfRN87XTH2c=kq1)O5(fH_M3M-o{{@&~KD`~TRot-gqg7Q2U2o-iiF}K>m?CokhmODaLB z1p6(6JYGntNOg(s!(>ZU&lzDf+Ur)^Lirm%*}Z>T)9)fAZ9>k(kvnM;ab$ptA=hoh zVgsVaveXbMpm{|4*d<0>?l_JUFOO8A3xNLQOh%nVXjYI6X8h?a@6kDe5-m&;M0xqx z+1U$s>(P9P)f0!{z%M@E7|9nn#IWgEx6A6JNJ(7dk`%6$3@!C!l;JK-p2?gg+W|d- ziEzgk$w7k48NMqg$CM*4O~Abj3+_yUKTyK1p6GDsGEs;}=E_q>^LI-~pym$qhXPJf z2`!PJDp4l(TTm#|n@bN!j;-FFOM__eLl!6{*}z=)UAcGYloj?bv!-XY1TA6Xz;82J zLRaF{8ayzGa|}c--}|^xh)xgX>6R(sZD|Z|qX50gu=d`gEwHqC@WYU7{%<5VOnf9+ zB@FX?|UL%`8EIAe!*UdYl|6wRz6Y>(#8x92$#y}wMeE|ZM2X*c}dKJ^4NIf;Fm zNwzq%QcO?$NR-7`su!*$dlIKo2y(N;qgH@1|8QNo$0wbyyJ2^}$iZ>M{BhBjTdMjK z>gPEzgX4;g3$rU?jvDeOq`X=>)zdt|jk1Lv3u~bjHI=EGLfIR&+K3ldcc4D&Um&04 z3^F*}WaxR(ZyaB>DlmF_UP@+Q*h$&nsOB#gwLt{1#F4i-{A5J@`>B9@{^i?g_Ce&O z<<}_We-RUFU&&MHa1#t56u_oM(Ljn7djja!T|gcxSoR=)@?owC*NkDarpBj=W4}=i1@)@L|C) zQKA+o<(pMVp*Su(`zBC0l1yTa$MRfQ#uby|$mlOMs=G`4J|?apMzKei%jZql#gP@IkOaOjB7MJM=@1j(&!jNnyVkn5;4lvro1!vq ztXiV8HYj5%)r1PPpIOj)f!>pc^3#LvfZ(hz}C@-3R(Cx7R427*Fwd!XO z4~j&IkPHcBm0h_|iG;ZNrYdJ4HI!$rSyo&sibmwIgm1|J#g6%>=ML1r!kcEhm(XY& zD@mIJt;!O%WP7CE&wwE3?1-dt;RTHdm~LvP7K`ccWXkZ0kfFa2S;wGtx_a}S2lslw z$<4^Jg-n#Ypc(3t2N67Juasu=h)j&UNTPNDil4MQMTlnI81kY46uMH5B^U{~nmc6+ z9>(lGhhvRK9ITfpAD!XQ&BPphL3p8B4PVBN0NF6U49;ZA0Tr75AgGw7(S=Yio+xg_ zepZ*?V#KD;sHH+15ix&yCs0eSB-Z%D%uujlXvT#V$Rz@$+w!u#3GIo*AwMI#Bm^oO zLr1e}k5W~G0xaO!C%Mb{sarxWZ4%Dn9vG`KHmPC9GWZwOOm11XJp#o0-P-${3m4g( z6~)X9FXw%Xm~&99tj>a-ri})ZcnsfJtc10F@t9xF5vq6E)X!iUXHq-ohlO`gQdS&k zZl})3k||u)!_=nNlvMbz%AuIr89l#I$;rG}qvDGiK?xTd5HzMQkw*p$YvFLGyQM!J zNC^gD!kP{A84nGosi~@MLKqWQNacfs7O$dkZtm4-BZ~iA8xWZPkTK!HpA5zr!9Z&+icfAJ1)NWkTd!-9`NWU>9uXXUr;`Js#NbKFgrNhTcY4GNv*71}}T zFJh?>=EcbUd2<|fiL+H=wMw8hbX6?+_cl4XnCB#ddwdG>bki* zt*&6Dy&EIPluL@A3_;R%)shA-tDQA1!Tw4ffBRyy;2n)vm_JV06(4Or&QAOKNZB5f(MVC}&_!B>098R{Simr!UG}?CW1Ah+X+0#~0`X)od zLYablwmFxN21L))!_zc`IfzWi`5>MxPe(DmjjO1}HHt7TJtAW+VXHt!aKZk>y6PoMsbDXRJnov;D~Ur~2R_7(Xr)aa%wJwZhS3gr7IGgt%@;`jpL@gyc6bGCVx!9CE7NgIbUNZ!Ur1RHror0~ zr(j$^yM4j`#c2KxSP61;(Tk^pe7b~}LWj~SZC=MEpdKf;B@on9=?_n|R|0q;Y*1_@ z>nGq>)&q!;u-8H)WCwtL&7F4vbnnfSAlK1mwnRq2&gZrEr!b1MA z(3%vAbh3aU-IX`d7b@q`-WiT6eitu}ZH9x#d&qx}?CtDuAXak%5<-P!{a`V=$|XmJ zUn@4lX6#ulB@a=&-9HG)a>KkH=jE7>&S&N~0X0zD=Q=t|7w;kuh#cU=NN7gBGbQTT z;?bdSt8V&IIi}sDTzA0dkU}Z-Qvg;RDe8v>468p3*&hbGT1I3hi9hh~Z(!H}{+>eUyF)H&gdrX=k$aB%J6I;6+^^kn1mL+E+?A!A}@xV(Qa@M%HD5C@+-4Mb4lI=Xp=@9+^x+jhtOc zYgF2aVa(uSR*n(O)e6tf3JEg2xs#dJfhEmi1iOmDYWk|wXNHU?g23^IGKB&yHnsm7 zm_+;p?YpA#N*7vXCkeN2LTNG`{QDa#U3fcFz7SB)83=<8rF)|udrEbrZL$o6W?oDR zQx!178Ih9B#D9Ko$H(jD{4MME&<|6%MPu|TfOc#E0B}!j^MMpV69D#h2`vsEQ{(?c zJ3Lh!3&=yS5fWL~;1wCZ?)%nmK`Eqgcu)O6rD^3%ijcxL50^z?OI(LaVDvfL0#zjZ z2?cPvC$QCzpxpt5jMFp05OxhK0F!Q`rPhDi5)y=-0C} zIM~ku&S@pl1&0=jl+rlS<4`riV~LC-#pqNde@44MB(j%)On$0Ko(@q?4`1?4149Z_ zZi!5aU@2vM$dHR6WSZpj+VboK+>u-CbNi7*lw4K^ZxxM#24_Yc`jvb9NPVi75L+MlM^U~`;a7`4H0L|TYK>%hfEfXLsu1JGM zbh|8{wuc7ucV+`Ys1kqxsj`dajwyM;^X^`)#<+a~$WFy8b2t_RS{8yNYKKlnv+>vB zX(QTf$kqrJ;%I@EwEs{cIcH@Z3|#^S@M+5jsP<^`@8^I4_8MlBb`~cE^n+{{;qW2q z=p1=&+fUo%T{GhVX@;56kH8K_%?X=;$OTYqW1L*)hzelm^$*?_K;9JyIWhsn4SK(| zSmXLTUE8VQX{se#8#Rj*lz`xHtT<61V~fb;WZUpu(M)f#;I+2_zR+)y5Jv?l`CxAinx|EY!`IJ*x9_gf_k&Gx2alL!hK zUWj1T_pk|?iv}4EP#PZvYD_-LpzU!NfcLL%fK&r$W8O1KH9c2&GV~N#T$kaXGvAOl)|T zuF9%6(i=Y3q?X%VK-D2YIYFPH3f|g$TrXW->&^Ab`WT z7>Oo!u1u40?jAJ8Hy`bv}qbgs8)cF0&qeVjD?e+3Ggn1Im>K77ZSpbU*08 zfZkIFcv?y)!*B{|>nx@cE{KoutP+seQU?bCGE`tS0GKUO3PN~t=2u7q_6$l;uw^4c zVu^f{uaqsZ{*a-N?2B8ngrLS8E&s6}Xtv9rR9C^b`@q8*iH)pFzf1|kCfiLw6u{Z%aC z!X^5CzF6qofFJgklJV3oc|Qc2XdFl+y5M9*P8}A>Kh{ zWRgRwMSZ(?Jw;m%0etU5BsWT-Dj-5F;Q$OQJrQd+lv`i6>MhVo^p*^w6{~=fhe|bN z*37oV0kji)4an^%3ABbg5RC;CS50@PV5_hKfXjYx+(DqQdKC^JIEMo6X66$qDdLRc z!YJPSKnbY`#Ht6`g@xGzJmKzzn|abYbP+_Q(v?~~ z96%cd{E0BCsH^0HaWt{y(Cuto4VE7jhB1Z??#UaU(*R&Eo+J`UN+8mcb51F|I|n*J zJCZ3R*OdyeS9hWkc_mA7-br>3Tw=CX2bl(=TpVt#WP8Bg^vE_9bP&6ccAf3lFMgr` z{3=h@?Ftb$RTe&@IQtiJfV;O&4fzh)e1>7seG; z=%mA4@c7{aXeJnhEg2J@Bm;=)j=O=cl#^NNkQ<{r;Bm|8Hg}bJ-S^g4`|itx)~!LN zXtL}?f1Hs6UQ+f0-X6&TBCW=A4>bU0{rv8C4T!(wD-h>VCK4YJk`6C9$by!fxOYw- zV#n+0{E(0ttq_#16B} ze8$E#X9o{B!0vbq#WUwmv5Xz6{(!^~+}sBW{xctdNHL4^vDk!0E}(g|W_q;jR|ZK< z8w>H-8G{%R#%f!E7cO_^B?yFRKLOH)RT9GJsb+kAKq~}WIF)NRLwKZ^Q;>!2MNa|} z-mh?=B;*&D{Nd-mQRcfVnHkChI=DRHU4ga%xJ%+QkBd|-d9uRI76@BT(bjsjwS+r) zvx=lGNLv1?SzZ;P)Gnn>04fO7Culg*?LmbEF0fATG8S@)oJ>NT3pYAXa*vX!eUTDF ziBrp(QyDqr0ZMTr?4uG_Nqs6f%S0g?h`1vO5fo=5S&u#wI2d4+3hWiolEU!=3_oFo zfie?+4W#`;1dd#X@g9Yj<53S<6OB!TM8w8})7k-$&q5(smc%;r z(BlXkTp`C47+%4JA{2X}MIaPbVF!35P#p;u7+fR*46{T+LR8+j25oduCfDzDv6R-hU{TVVo9fz?^N3ShMt!t0NsH)pB zRK8-S{Dn*y3b|k^*?_B70<2gHt==l7c&cT>r`C#{S}J2;s#d{M)ncW(#Y$C*lByLQ z&?+{dR7*gpdT~(1;M(FfF==3z`^eW)=5a9RqvF-)2?S-(G zhS;p(u~_qBum*q}On@$#08}ynd0+spzyVco0%G6;<-i5&016cV5UKzhQ~)fX03|>L z8ej+HzzgVr6_5ZUpa4HW0Ca!=r1%*}Oo;2no&Zz8DfR)L!@r<5 z2viSZpmvo5XqXyAz{Ms7`7kX>fnr1gi4X~7KpznRT0{Xc5Cfz@43PjBMBoH@z_{~( z(Wd}IPJ9hH+%)Fc)0!hrV+(A;76rhtI|YHbEDeERV~Ya>SQg^IvlazFkSK(KG9&{q zkPIR~EeQaaBmwA<20}mBO?)N$(z1@p)5?%}rM| zGF()~Z&Kx@OIDRI$d0T8;JX@vj3^2%pd_+@l9~a4lntZ;AvUIjqIZbuNTR6@hNJoV zk4F;ut)LN4ARuyn2M6F~eg-e#UH%2P;8uPGFW^vq1vj8mdIayFOZo(tphk8C7hpT~ z1Fv8?b_LNR3QD9J+!v=p%}# + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/fonts/glyphicons-halflings-regular.ttf b/dist/docs/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1413fc609ab6f21774de0cb7e01360095584f65b GIT binary patch literal 45404 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 G`u_lkUM?>H literal 0 HcmV?d00001 diff --git a/dist/docs/fonts/glyphicons-halflings-regular.woff2 b/dist/docs/fonts/glyphicons-halflings-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..64539b54c3751a6d9adb44c8e3a45ba5a73b77f0 GIT binary patch literal 18028 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 literal 0 HcmV?d00001 diff --git a/dist/docs/global.html b/dist/docs/global.html new file mode 100644 index 000000000..e35e53cb8 --- /dev/null +++ b/dist/docs/global.html @@ -0,0 +1,11621 @@ + + + + + + + Documentation Global + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Global

+
+ +
+ +

+ +

+ + +
+ + +
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + +

Members

+ +
+ +
+
+

<constant> AudioCodec :string

+ + +
+
+ +
+

Names of the supported audio codecs.

+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
isac + + +string + + + + + + + isac + +
opus + + +string + + + + + + + opus + +
PCMA + + +string + + + + + + + PCMA + +
PCMU + + +string + + + + + + + PCMU + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

<constant> BandwidthProfileMode :string

+ + +
+
+ +
+

BandwidthProfileMode specifies how RemoteVideoTracks' Track.Priority values +are mapped to bandwidth allocation in Group Rooms.

+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
grid + + +string + + + + + + + grid + +

This mode is for use cases where all the subscribed RemoteVideoTracks are +equally important. The bandwidth allocation algorithm will share the available +downlink bandwidth equally among the subscribed RemoteVideoTracks, irrespective +of their Track.Priority. In case of insufficient downlink bandwidth, the lower +priority RemoteVideoTracks are switched off.

collaboration + + +string + + + + + + + collaboration + +

This mode is for use cases where some RemoteVideoTracks are prioritized more than +others. However, the lower priority RemoteVideoTracks still need to be visible. +The bandwidth allocation algorithm will share the available downlink bandwidth proportional +to the requested VideoRenderDimensions corresponding to their Track.Priority. +In case of insufficient downlink bandwidth, the quality of higher priority RemoteVideoTracks +may be degraded to avoid switching off lower priority RemoteVideoTracks.

presentation + + +string + + + + + + + presentation + +

This mode is for use cases where some RemoteVideoTracks are deemed critical and must +be preserved at any cost over the other RemoteVideoTracks. The bandwidth allocation +algorithm will allocate as big a share of the available downlink bandwidth as it possibly +can to the higher priority RemoteVideoTracks, and only then consider the lower priority +RemoteVideoTracks. In case of insufficient downlink bandwidth, the lower priority +RemoteVideoTracks are switched off in order to preserve the quality of the higher +priority RemoteVideoTracks.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

<constant> ClientTrackSwitchOffControl :string

+ + +
+
+ +
+

ClientTrackSwitchOffControl specifies how RemoteVideoTracks' turned on and off

+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
auto + + +string + + + + + + + auto + +

when set to auto, SDK uses the visibility of the video elements attached to the to the RemoteVideoTrack to decide. +on turning tracks on or off. The track that are not attached to any video elements or not visible on the screen will be turned +off automatically.

manual + + +string + + + + + + + manual + +

When set to manual, application can use RemoteVideoTracks switchOff and switchOn apis to control turn the track on or off.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

<constant> EventListenerGroup :string

+ + +
+
+ +
+

Names of the supported groups for EventListenerEvents.

+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
signaling + + +string + + + + + + + signaling + +

Events associated with the connection to Twilio's signaling server

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

<constant> EventListenerLevel :string

+ + +
+
+ +
+

Names of the supported levels for EventListenerEvents.

+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
debug + + +string + + + + + + + debug + +
error + + +string + + + + + + + error + +
info + + +string + + + + + + + info + +
warning + + +string + + + + + + + warning + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

<constant> LogLevel :string

+ + +
+
+ +
+

Levels for logging verbosity.

+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
debug + + +string + + + + + + + debug + +
info + + +string + + + + + + + info + +
warn + + +string + + + + + + + warn + +
error + + +string + + + + + + + error + +
off + + +string + + + + + + + off + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

<constant> NetworkQualityVerbosity :number

+ + +
+
+ +
+

The verbosity level of network quality information of a Participant.

+
+ + + +
Type:
+
    +
  • + +number + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
none + + +number + + + + + + + 0 + +

Nothing is reported for the Participant. This has no effect and +defaults to NetworkQualityVerbosity#minimal +for the LocalParticipant.

minimal + + +number + + + + + + + 1 + +

Reports NetworkQualityLevel for the Participant.

moderate + + +number + + + + + + + 2 + +

Reports NetworkQualityLevel and NetworkQualityStats for the Participant. +NetworkQualityStats is populated with audio and video NetworkQualityLevels +based on which the Participant's NetworkQualityLevel is calculated.

detailed + + +number + + + + + + + 3 + +

Reports NetworkQualityLevel and NetworkQualityStats for the Participant. +NetworkQualityStats is populated with audio and Video NetworkQualityLevels +and their corresponding NetworkQualityMediaStats based on which the +Participant's NetworkQualityLevel is calculated.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

<constant> NoiseCancellationVendor :string

+ + +
+
+ +
+

NoiseCancellationVendor specifies the 3rd party plugin to use for noise cancellation.

+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
krisp + + +string + + + + + + + krisp + +

This plugin can be found by requesting access with this form https://forms.gle/eeFyoGJj1mgMrxN88

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

<constant> PreflightProgress :string

+ + +
+
+ +
+

progress values that are sent by PreflightTest#event:progress

+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
mediaAcquired + + +string + + + + + + + mediaAcquired + +

PreflightTest has successfully generated synthetic tracks

connected + + +string + + + + + + + connected + +

PreflightTest has successfully connected to twilio server and obtained turn credentials

mediaSubscribed + + +string + + + + + + + mediaSubscribed + +

SubscriberParticipant successfully subscribed to media tracks.

mediaStarted + + +string + + + + + + + mediaStarted + +

Media flow was detected.

dtlsConnected + + +string + + + + + + + dtlsConnected + +

Established DTLS connection. This is measured from RTCDtlsTransport connecting to connected state. +On Safari, Support for measuring this is missing, this event will be not be emitted on Safari.

peerConnectionConnected + + +string + + + + + + + peerConnectionConnected + +

Established a PeerConnection, This is measured from PeerConnection connecting to connected state. +On Firefox, Support for measuring this is missing, this event will be not be emitted on Firefox.

iceConnected + + +string + + + + + + + iceConnected + +

Established ICE connection. This is measured from ICE connection checking to connected state.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

<constant> TrackSwitchOffMode :string

+ + +
+
+ +
+

TrackSwitchOffMode specifies when RemoteVideoTracks' are switched off.

+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
detected + + +string + + + + + + + detected + +

In this mode, RemoteVideoTracks are switched off only when network congestion +is detected.

predicted + + +string + + + + + + + predicted + +

In this mode, RemoteVideoTracks are pro-actively switched off when network +congestion is predicted by the bandwidth estimation mechanism.

disabled + + +string + + + + + + + disabled + +

In this mode, RemoteVideoTracks are not switched off. Instead in response to network +congestion, tracks will be adjusted to lower quality.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

<constant> VideoCodec :string

+ + +
+
+ +
+

Names of the supported video codecs.

+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
H264 + + +string + + + + + + + H264 + +
VP8 + + +string + + + + + + + VP8 + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

<constant> VideoContentPreferencesMode :string

+ + +
+
+ +
+

VideoContentPreferencesMode specifies how RemoteVideoTracks' render dimensions are +decided by the SDK.

+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
auto + + +string + + + + + + + auto + +

when set to auto, SDK uses the sizes of the video elements attached to the to the RemoteVideoTrack dynamically to +decide the render dimensions. RemoteVideoTracks rendered in smaller video elements will be given smaller bandwidth allocation +compared to the tracks rendered in large video elements.

manual + + +string + + + + + + + manual + +

When set to manual, application can use RemoteVideoTrack#setContentPreference to set the +desired render dimensions for the RemoteVideoTrack.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

<constant> VideoEncodingMode :string

+ + +
+
+ +
+

Names of the supported VideoEncodingMode.

+
+ + + +
Type:
+
    +
  • + +string + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
Auto + + +string + + + + + + + auto + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+ + + + + +

Type Definitions

+ +
+ +
+
+

AddProcessorOptions

+ + +
+
+ +
+

Possible options to provide to LocalVideoTrack#addProcessor and RemoteVideoTrack#addProcessor.

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDefaultDescription
inputFrameBufferType + + +string + + + + + + + <optional>
+ + + +
+ + "offscreencanvas" + +

This option allows you to specify what kind of input you want to receive in your +Video Processor. The default is offscreencanvas and will fallback to a regular canvas if the browser does not support it. +Possible values include the following. +
+
+offscreencanvas - Your Video Processor will receive an OffscreenCanvas +which is good for canvas-related processing that can be rendered off screen. +
+
+canvas - Your Video Processor will receive an HTMLCanvasElement. +This is recommended on browsers that doesn't support OffscreenCanvas, or if you need to render the frame on the screen. +
+
+video - Your Video Processor will receive an HTMLVideoElement. +Use this option if you are processing the frame using WebGL or if you only need to draw +the frame directly to your output canvas.

outputFrameBufferContextType + + +string + + + + + + + <optional>
+ + + +
+ + "2d" + +

The SDK needs the context type +that your Video Processor uses in order to properly generate the processed track. For example, if your Video Processor uses WebGL2 (canvas.getContext('webgl2')), +you should set outputFrameBufferContextType to webgl2. Or if you're using Canvas 2D processing (canvas.getContext('2d')), +you should set outputFrameBufferContextType to 2d.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

AudioCodecSettings

+ + +
+
+ +
+

Audio codec settings.

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
codec + + +AudioCodec + + + + +

Audio codec name

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

AudioLevel

+ + +
+
+ +
+

The maximum absolute amplitude of a set of audio samples in the +range of 0 to 32767 inclusive.

+
+ + + +
Type:
+
    +
  • + +number + + + +
  • +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

AudioTrackPublication

+ + +
+
+ + + + + +
Type:
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

BandwidthProfileOptions

+ + +
+
+ +
+

BandwidthProfileOptions allows you to configure how your available downlink +bandwidth is shared among the RemoteTracks you have subscribed to in a Group Room.

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
video + + +VideoBandwidthProfileOptions + + + + + + + <optional>
+ + + +

Optional parameter to configure +how your available downlink bandwidth is shared among the RemoteVideoTracks you +have subscribed to in a Group Room.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

ConnectOptions

+ + +
+
+ +
+

You may pass these options to connect in order to override the +default behavior.

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDefaultDescription
audio + + +boolean +| + +CreateLocalTracksOptions +| + +CreateLocalAudioTrackOptions + + + + + + + <optional>
+ + + +
+ + true + +

Whether or not to +get local audio with getUserMedia when tracks +are not provided.

automaticSubscription + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

By default, you will subscribe +to all RemoteTracks shared by other Participants in a Room. You can now override this +behavior by setting this flag to false. It will make sure that you will +not subscribe to any RemoteTrack in a Group or Small Group Room. Setting it to +true, or not setting it at all preserves the default behavior. This +flag does not have any effect in a Peer-to-Peer Room.

bandwidthProfile + + +BandwidthProfileOptions + + + + + + + <optional>
+ + + +
+ +

You can optionally configure +how your available downlink bandwidth is shared among the RemoteTracks you have subscribed +to in a Group Room. By default, bandwidth is shared equally among the RemoteTracks. +This has no effect in Peer-to-Peer Rooms.

dominantSpeaker + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Whether to enable the Dominant +Speaker API or not. This only takes effect in Group Rooms.

dscpTagging + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

(deprecated: use "enableDscp" instead) +DSCP tagging allows you to request enhanced QoS treatment for RTP media packets from any +firewall that the client may be behind. Setting this option to true will +request DSCP tagging for media packets on supported browsers (only Chrome supports this +as of now). Audio packets will be sent with DSCP header value set to 0xb8 which corresponds +to Expedited Forwarding (EF). Video packets will be sent with DSCP header value set to 0x88 +which corresponds to Assured Forwarding (AF41).

enableDscp + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

DSCP tagging allows you to request enhanced +QoS treatment for RTP media packets from any firewall that the client may be behind. +Setting this option to true will request DSCP tagging for media packets +on supported browsers (only Chrome supports this as of now). Audio packets will be +sent with DSCP header value set to 0xb8 which corresponds to Expedited Forwarding (EF). +Video packets will be sent with DSCP header value set to 0x88 which corresponds to +Assured Forwarding (AF41).

eventListener + + +EventListener + + + + + + + <optional>
+ + + +
+ +

(deprecated: use Video.Logger +you can listen to fine-grained events related to signaling and media that are +not available in the public APIs. These events might be useful for your own reporting +and diagnostics.

iceServers + + +Array.<RTCIceServer> + + + + + + + + + + +

Override the STUN and TURN +servers used when connecting to Rooms

iceTransportPolicy + + +RTCIceTransportPolicy + + + + + + + <optional>
+ + + +
+ + "all" + +

Override the +ICE transport policy to be one of "relay" or "all"

insights + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Whether publishing events +to the Insights gateway is enabled or not

maxAudioBitrate + + +number + + + + + + + <optional>
+ + + + <nullable>
+ +
+ + null + +

Max outgoing audio bitrate (bps); +A null or a 0 value does not set any bitrate limit; +This value is set as a hint for variable bitrate codecs, but will not take +effect for fixed bitrate codecs; Based on our tests, Chrome, Firefox and Safari +support a bitrate range of 12000 bps to 256000 bps for Opus codec; This parameter +has no effect on iSAC, PCMU and PCMA codecs

maxVideoBitrate + + +number + + + + + + + <optional>
+ + + + <nullable>
+ +
+ + null + +

Max outgoing video bitrate (bps); +A null or 0 value does not set any bitrate limit; +This value is set as a hint for variable bitrate codecs, but will not take +effect for fixed bitrate codecs; Based on our tests, Chrome, Firefox and Safari +all seem to support an average bitrate range of 20000 bps (20 kbps) to +8000000 bps (8 mbps) for a 720p VideoTrack +This parameter must not be set when when preferredVideoCodecs is set to auto.

name + + +string + + + + + + + <optional>
+ + + + <nullable>
+ +
+ + null + +

Set to connect to a Room by name

networkQuality + + +boolean +| + +NetworkQualityConfiguration + + + + + + + <optional>
+ + + +
+ + false + +

Whether to enable the Network +Quality API or not. This only takes effect in Group Rooms. Pass a NetworkQualityConfiguration +to configure verbosity levels for network quality information for LocalParticipant +and RemoteParticipants. A true value will set the NetworkQualityVerbosity +for the LocalParticipant to NetworkQualityVerbosity#minimal +and the NetworkQualityVerbosity for RemoteParticipants to +NetworkQualityVerbosity#none.

notifyWarnings + + +Array.<string> + + + + + + + <optional>
+ + + +
+ + [] + +

The SDK raises warning events when it +detects certain conditions. You can implement callbacks on these events to act on them, or to alert +the user of an issue. Subsequently, "warningsCleared" event is raised when conditions have returned +to normal. You can listen to these events by specifying an array of warning. By default, +this array is empty and no warning events will be raised. +Possible values include recording-media-lost, which is raised when the media server +has not detected any media on the published track that is being recorded in the past 30 seconds. +This usually happens when there are network interruptions or when the track has stopped. +This warning is raised by LocalTrackPublication, LocalParticipant, and Room object.

region + + +string + + + + + + + <optional>
+ + + +
+ + 'gll' + +

Preferred signaling region; By default, you will be connected to the +nearest signaling server determined by latency based routing. Setting a value other +than gll bypasses routing and guarantees that signaling traffic will be +terminated in the region that you prefer. Please refer to this table +for the list of supported signaling regions.

preferredAudioCodecs + + +Array.<(AudioCodec|AudioCodecSettings)> + + + + + + + <optional>
+ + + +
+ + [] + +

Preferred audio codecs; +An empty array preserves the current audio codec preference order.

preferredVideoCodecs + + +Array.<(VideoCodec|VideoCodecSettings)> +| + +VideoEncodingMode + + + + + + + <optional>
+ + + +
+ + [] + +

Preferred video codecs; when set to 'VideoEncodingMode.Auto', SDK manages the video codec, +by preferring VP8 simulcast in group rooms. It also enables adaptive simulcast, which allows SDK +to turn off simulcast layers that are not needed for efficient bandwidth and CPU usage. +An empty array preserves the current video codec. +preference order. If you want to set a preferred video codec on a Group Room, +you will need to create the Room using the REST API and set the +VideoCodecs property. +See +here for more information.

logLevel + + +LogLevel +| + +LogLevels + + + + + + + <optional>
+ + + +
+ + 'warn' + +

(deprecated: use Video.Logger instead. +See examples for details) +Set the default log verbosity +of logging. Passing a LogLevel string will use the same +level for all components. Pass a LogLevels to set specific log +levels.

loggerName + + +string + + + + + + + <optional>
+ + + +
+ + 'twilio-video' + +

The name of the logger. Use this name when accessing the logger used by the SDK. +See examples for details.

tracks + + +Array.<(LocalTrack|MediaStreamTrack)> + + + + + + + <optional>
+ + + +
+ +

The +LocalTracks or MediaStreamTracks with which to join the +Room. These tracks can be obtained either by calling +createLocalTracks, or by constructing them from the MediaStream +obtained by calling getUserMedia().

video + + +boolean +| + +CreateLocalTrackOptions + + + + + + + <optional>
+ + + +
+ + true + +

Whether or not to +get local video with getUserMedia when tracks +are not provided.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

CreateLocalAudioTrackOptions

+ + +
+
+ +
+

Create LocalAudioTrack options.

+
+ + + +
Type:
+ + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDefaultDescription
workaroundWebKitBug180748 + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

setting this +attempts to workaround WebKit Bug 180748, where, in Safari, getUserMedia may return a silent audio +MediaStreamTrack.

defaultDeviceCaptureMode + + +DefaultDeviceCaptureMode + + + + + + + <optional>
+ + + +
+ + "auto" + +

This optional property only applies if the +LocalAudioTrack is capturing from the default audio input device connected to a desktop or laptop. When the +property is set to "auto", the LocalAudioTrack restarts whenever the default audio input device changes, in order to +capture audio from the new default audio input device. For example, when a bluetooth audio headset is connected to a +Macbook, the LocalAudioTrack will start capturing audio from the headset microphone. When the headset is disconnected, +the LocalAudioTrack will start capturing audio from the Macbook microphone. When the property is set to "manual", the +LocalAudioTrack continues to capture from the same audio input device even after the default audio input device changes. +When the property is not specified, it defaults to "auto".

noiseCancellationOptions + + +NoiseCancellationOptions + + + + + + + <optional>
+ + + +
+ +

This optional property enables using 3rd party plugins +for noise cancellation.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

CreateLocalTrackOptions

+ + +
+
+ +
+

Create LocalTrack options. Apart from the properties listed here, you can +also specify any of the MediaTrackConstraints +properties.

+
+ + + +
Type:
+
    +
  • + +MediaTrackConstraints + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDefaultDescription
logLevel + + +LogLevel +| + +LogLevels + + + + + + + <optional>
+ + + +
+ + 'warn' + +

(deprecated: use Video.Logger instead. +See examples for details) +Set the default log verbosity +of logging. Passing a LogLevel string will use the same +level for all components. Pass a LogLevels to set specific log +levels.

loggerName + + +string + + + + + + + <optional>
+ + + +
+ + 'twilio-video' + +

The name of the logger. Use this name when accessing the logger used by the SDK. +See examples for details.

name + + +string + + + + + + + <optional>
+ + + +
+ +

The LocalTrack's name; by default, +it is set to the LocalTrack's ID.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

CreateLocalTracksOptions

+ + +
+
+ +
+

createLocalTracks options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDefaultDescription
audio + + +boolean +| + +CreateLocalTrackOptions +| + +CreateLocalAudioTrackOptions + + + + + + + <optional>
+ + + +
+ + true + +

Whether or not to +get local audio with getUserMedia when tracks +are not provided.

logLevel + + +LogLevel +| + +LogLevels + + + + + + + <optional>
+ + + +
+ + 'warn' + +

(deprecated: use Video.Logger instead. +See examples for details) +Set the default log verbosity +of logging. Passing a LogLevel string will use the same +level for all components. Pass a LogLevels to set specific log +levels.

loggerName + + +string + + + + + + + <optional>
+ + + +
+ + 'twilio-video' + +

The name of the logger. Use this name when accessing the logger used by the SDK. +See examples for details.

video + + +boolean +| + +CreateLocalTrackOptions + + + + + + + <optional>
+ + + +
+ + true + +

Whether or not to +get local video with getUserMedia when tracks +are not provided.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

DataTrack

+ + +
+
+ + + + + +
Type:
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

DataTrackPublication

+ + +
+
+ + + + + +
Type:
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

EncodingParameters

+ + +
+
+ +
+

Outgoing media encoding parameters.

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
maxAudioBitrate + + +number + + + + + + + <optional>
+ + + + <nullable>
+ +

Max outgoing audio bitrate (bps); +If not specified, retains the existing bitrate limit; A null or a +0 value removes any previously set bitrate limit; This value is set +as a hint for variable bitrate codecs, but will not take effect for fixed bitrate +codecs; Based on our tests, Chrome, Firefox and Safari support a bitrate range of +12000 bps to 256000 bps for Opus codec; This parameter has no effect on iSAC, PCMU +and PCMA codecs

maxVideoBitrate + + +number + + + + + + + <optional>
+ + + + <nullable>
+ +

Max outgoing video bitrate (bps); +If not specified, retains the existing bitrate limit; A null or +a 0 value removes any previously set bitrate limit; This value is +set as a hint for variable bitrate codecs, but will not take effect for fixed +bitrate codecs; Based on our tests, Chrome, Firefox and Safari all seem to support +an average bitrate range of 20000 bps (20 kbps) to 8000000 bps (8 mbps) for a +720p VideoTrack. +Note: this limit is not applied for screen share tracks published on Chrome.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

EventListener

+ + +
+
+ +
+

An EventListener allows you to listen to fine-grained EventListenerEvents related +to signaling and media that are not available in the public APIs, which might be useful for your own +reporting and diagnostics.

+
+ + + +
Type:
+
    +
  • + +EventEmitter + + + +
  • +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
Example
+ +
const { EventEmitter } = require('events');
+const { connect } = require('twilio-video');
+
+const eventListener = new EventEmitter();
+eventListener.on('event', function(event) {
+  console.log('The SDK raised an event:', event);
+});
+
+connect('token', {
+  eventListener: eventListener
+});
+ + + +
+ + + +
+
+

EventListenerClosedEvent

+ + +
+
+ +
+

The connection to Twilio's signaling server was closed.

+
+ + + +
Type:
+ + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
group + + +EventListenerGroup + + + + + + + 'signaling' + +
level + + +EventListenerLevel + + + + + + +

'info' if the connection was closed by the client, 'error' otherwise

name + + +string + + + + + + + 'closed' + +
payload + + +Object + + + + + + +

Reason for the connection being closed. It can be one of +'busy', 'failed', 'local', 'remote' or 'timeout'

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

EventListenerConnectingEvent

+ + +
+
+ +
+

The SDK is connecting to Twilio's signaling server.

+
+ + + +
Type:
+ + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
group + + +EventListenerGroup + + + + + + + 'signaling' + +
level + + +EventListenerLevel + + + + + + + 'info' + +
name + + +string + + + + + + + 'connecting' + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

EventListenerEarlyEvent

+ + +
+
+ +
+

The SDK is about to connect to Twilio's signaling server.

+
+ + + +
Type:
+ + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
group + + +EventListenerGroup + + + + + + + 'signaling' + +
level + + +EventListenerLevel + + + + + + + 'info' + +
name + + +string + + + + + + + 'early' + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

EventListenerEvent

+ + +
+
+ +
+

An EventListenerEvent provides context about an event raised by the SDK on the +EventListener. Apart from the properties listed here, it may also include some +event-specific data within an optional "payload" property. The different types of +EventListenerEvents are listed below:

+ +
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
elapsedTime + + +number + + + + + + + + +

The time elapsed in milliseconds since connect() was called

group + + +EventListenerGroup + + + + + + + + +

The group under which the event is classified

level + + +EventListenerLevel + + + + + + + + +

The verbosity level of the event, which can be one of "debug", "error", "info", "warning"

name + + +string + + + + + + + + +

The name of the event

payload + + +* + + + + + + + <optional>
+ + + +

Optional event-specific data

timestamp + + +number + + + + + + + + +

The time in milliseconds relative to the Unix Epoch when the event was raised

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

EventListenerOpenEvent

+ + +
+
+ +
+

The SDK has established a signaling connection to Twilio's signaling server.

+
+ + + +
Type:
+ + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
group + + +EventListenerGroup + + + + + + + 'signaling' + +
level + + +EventListenerLevel + + + + + + + 'info' + +
name + + +string + + + + + + + 'open' + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

EventListenerWaitingEvent

+ + +
+
+ +
+

The SDK is waiting to retry connecting th Twilio's signaling server. This can +happen if the server is busy with too many connection requests.

+
+ + + +
Type:
+ + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefaultDescription
group + + +EventListenerGroup + + + + + + + 'signaling' + +
level + + +EventListenerLevel + + + + + + + 'warning' + +
name + + +string + + + + + + + 'waiting' + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

LocalDataTrackOptions

+ + +
+
+ +
+

LocalDataTrack options

+
+ + + +
Type:
+ + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDefaultDescription
maxPacketLifeTime + + +number + + + + + + + <optional>
+ + + + <nullable>
+ +
+ + null + +

Set this to limit the time +(in milliseconds) during which the LocalDataTrack will send or re-send data +if not successfully delivered on the underlying RTCDataChannel(s). It is an +error to specify both this and maxRetransmits.

maxRetransmits + + +number + + + + + + + <optional>
+ + + + <nullable>
+ +
+ + null + +

Set this to limit the number of +times the LocalDataTrack will send or re-send data if not +acknowledged on the underlying RTCDataChannel(s). It is an error to specify +both this and maxPacketLifeTime.

ordered + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Set this to false to allow data on the +LocalDataTrack to be sent out-of-order.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

LocalTrack

+ + +
+
+ + + + + +
Type:
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

LocalTrackOptions

+ + +
+
+ +
+

LocalTrack options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
logLevel + + +LogLevel +| + +LogLevels + + + + + + + + +

Log level for 'media' modules

name + + +string + + + + + + + <optional>
+ + + +

The LocalTrack's name; by default, +it is set to the LocalTrack's ID.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

LocalTrackPublishOptions

+ + +
+
+ +
+

Options for publishing a LocalTrack.

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDefaultDescription
priority + + +Track.Priority + + + + + + + <optional>
+ + + +
+ + 'standard' + +

The priority with which the LocalTrack +is to be published; In Group or Small Group Rooms, the appropriate bandwidth is +allocated to the LocalTrack based on its Track.Priority; It has no +effect in Peer-to-Peer Rooms; It defaults to "standard" when not provided

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

LogLevels

+ + +
+
+ +
+

You may pass these levels to ConnectOptions to override +log levels for individual components.

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDefaultDescription
default + + +LogLevel + + + + + + + <optional>
+ + + +
+ + 'warn' + +

Log level for 'default' modules.

media + + +LogLevel + + + + + + + <optional>
+ + + +
+ + 'warn' + +

Log level for 'media' modules.

signaling + + +LogLevel + + + + + + + <optional>
+ + + +
+ + 'warn' + +

Log level for 'signaling' modules.

webrtc + + +LogLevel + + + + + + + <optional>
+ + + +
+ + 'warn' + +

Log level for 'webrtc' modules.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

MediaStreamTrackPublishOptions

+ + +
+
+ +
+

Options for publishing a MediaStreamTrack.

+
+ + + +
Type:
+ + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDefaultDescription
priority + + +Track.Priority + + + + + + + <optional>
+ + + +
+ + 'standard' + +

The priority with which the LocalTrack +is to be published; In Group or Small Group Rooms, the appropriate bandwidth is +allocated to the LocalTrack based on its Track.Priority; It has no +effect in Peer-to-Peer Rooms; It defaults to "standard" when not provided

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

NetworkQualityConfiguration

+ + +
+
+ +
+

Configure verbosity levels for network quality information for +LocalParticipant and RemoteParticipants.

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDefaultDescription
local + + +NetworkQualityVerbosity + + + + + + + <optional>
+ + + +
+ + 1 + +

Verbosity level for LocalParticipant

remote + + +NetworkQualityVerbosity + + + + + + + <optional>
+ + + +
+ + 0 + +

Verbosity level for RemoteParticipants

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

NetworkQualityLevel

+ + +
+
+ +
+

NetworkQualityLevel is a value from 0–5, inclusive, representing the +quality of a network connection.

+
+ + + +
Type:
+
    +
  • + +number + + + +
  • +
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

NetworkTiming

+ + +
+
+ +
+

Represents network timing measurements captured during preflight test

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
connect + + +TimeMeasurement + + + + + + + <optional>
+ + + +

Time to establish signaling connection and acquire turn credentials

media + + +TimeMeasurement + + + + + + + <optional>
+ + + +

Time to start media. This is measured from calling connect to remote media getting started.

dtls + + +TimeMeasurement + + + + + + + <optional>
+ + + +

Time to establish dtls connection. This is measured from RTCDtlsTransport connecting to connected state. (Not available on Safari)

ice + + +TimeMeasurement + + + + + + + <optional>
+ + + +

Time to establish ice connectivity. This is measured from ICE connection checking to connected state.

peerConnection + + +TimeMeasurement + + + + + + + <optional>
+ + + +

Time to establish peer connectivity. This is measured from PeerConnection connecting to connected state. (Not available on Firefox)

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

NoiseCancellationOptions

+ + +
+
+ +
+

You can use 3rd party noise cancellation plugin when creating LocalAudioTrack +By specifying these options. This is a beta feature.

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
vendor + + +NoiseCancellationVendor + + + + +

Specifies the vendor library to use +You need to obtain and host the library files on your web server.

sdkAssetsPath + + +string + + + + +

Specifies path where vendor library files are +hosted on your web server.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

OpusCodecSettings

+ + +
+
+ +
+

Opus codec settings.

+
+ + + +
Type:
+ + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDefaultDescription
name + + +AudioCodec + + + + + + + + + + +

"opus"

dtx + + +boolean + + + + + + + <optional>
+ + + +
+ + true + +

Enable/disable discontinuous transmission (DTX); +If enabled all published LocalAudioTracks will reduce the outgoing bitrate +to near-zero whenever speech is not detected, resulting in bandwidth and CPU savings; +It defaults to true.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

PreflightOptions

+ + +
+
+ +
+

You may pass these options to module:twilio-video.testPreflight in order to override the +default behavior.

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDefaultDescription
region + + +string + + + + + + + <optional>
+ + + +
+ + 'gll' + +

Preferred signaling region; By default, you will be connected to the +nearest signaling server determined by latency based routing. Setting a value other +than gll bypasses routing and guarantees that signaling traffic will be +terminated in the region that you prefer. Please refer to this table +for the list of supported signaling regions.

duration + + +number + + + + + + + <optional>
+ + + +
+ + 10000 + +

number of milliseconds to run test for. +once connected test will run for this duration before generating the stats report.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

PreflightReportStats

+ + +
+
+ +
+

Represents RTC related stats that were observed during preflight test

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
jitter + + +Stats + + + + + + + <optional>
+ + + +

Packet delay variation in seconds

rtt + + +Stats + + + + + + + <optional>
+ + + +

Round trip time, to the server back to the client in milliseconds.

packetLoss + + +Stats + + + + + + + <optional>
+ + + +

Packet loss as a percent of total packets sent.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

PreflightTestReport

+ + +
+
+ +
+

Represents report generated by PreflightTest.

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
testTiming + + +TimeMeasurement + + + + + + + <optional>
+ + + +

Time measurements of test run time.

networkTiming + + +NetworkTiming + + + + + + + <optional>
+ + + +

Network related time measurements.

stats + + +PreflightReportStats + + + + + + + <optional>
+ + + +

RTC related stats captured during the test.

iceCandidateStats + + +Array.<RTCIceCandidateStats> + + + + + + + <optional>
+ + + +

List of gathered ice candidates.

selectedIceCandidatePairStats + + +SelectedIceCandidatePairStats + + + + + + + + +

Stats for the ice candidates that were used for the connection.

progressEvents + + +Array.<ProgressEvent> + + + + + + + <optional>
+ + + +

ProgressEvent events detected during the test. +Use this information to determine which steps were completed and which ones were not.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

ProgressEvent

+ + +
+
+ +
+

A PreflightProgress event with timing information.

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
duration + + +number + + + + + + + <optional>
+ + + +

The duration of the event, measured from the start of the test.

name + + +string + + + + + + + <optional>
+ + + +

The PreflightProgress event name.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

RemoteTrack

+ + +
+
+ + + + + +
Type:
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

RemoteTrackPublicationOptions

+ + +
+
+ + + + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
logLevel + + +LogLevel +| + +LogLevels + + + + +

Log level for 'media' modules

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

SelectedIceCandidatePairStats

+ + +
+
+ +
+

Represents stats for a numerical metric.

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
localCandidate + + +RTCIceCandidateStats + + + + + + + <optional>
+ + + +

Selected local ice candidate

remoteCandidate + + +RTCIceCandidateStats + + + + + + + <optional>
+ + + +

Selected local ice candidate

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

Stats

+ + +
+
+ +
+

Represents stats for a numerical metric.

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
average + + +number + + + + + + + <optional>
+ + + +

Average value observed.

max + + +number + + + + + + + <optional>
+ + + +

Max value observed.

min + + +number + + + + + + + <optional>
+ + + +

Min value observed.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

TrackPublicationOptions

+ + +
+
+ +
+

TrackPublication options

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
logLevel + + +LogLevel +| + +LogLevels + + + + +

Log level for 'media' modules

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

VideoBandwidthProfileOptions

+ + +
+
+ +
+

VideoBandwidthProfileOptions allows you to configure how your available downlink +bandwidth is shared among the RemoteVideoTracks you have subscribed to in a Group Room.

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDefaultDescription
dominantSpeakerPriority + + +Track.Priority + + + + + + + <optional>
+ + + +
+ + "standard" + +

Optional parameter to +specify the minimum subscribe Track.Priority of the Dominant Speaker's RemoteVideoTracks. +This means that the Dominant Speaker's RemoteVideoTracks that are published with +lower Track.Priority will be subscribed to with the Track.Priority specified here. +This has no effect on RemoteVideoTracks published with higher Track.Priority, which will +still be subscribed to with with the same Track.Priority. If not specified, this defaults to "standard". +This parameter only applies to a Group Room Participant when ConnectOptions.dominantSpeaker is set to true.

maxSubscriptionBitrate + + +number + + + + + + + <optional>
+ + + +
+ +

Optional parameter to specify the maximum +downlink video bandwidth in bits per second (bps). By default, there are no limits on +the downlink video bandwidth.

clientTrackSwitchOffControl + + +ClientTrackSwitchOffControl + + + + + + + <optional>
+ + + +
+ + "auto" + +

Optional parameter that determines +when to turn the RemoteVideoTrack on or off. When set to "auto", SDK will use the visibility of the +attached elements to determine if the RemoteVideoTrack should be turned off or on. When the attached video elements become invisible the RemoteVideoTrack will +be turned off, and when elements become visible they will be turned on. When set to "manual" you can turn the RemoteVideoTrack +on and off using the api RemoteVideoTrack#switchOn and RemoteVideoTrack#switchOff respectively.

contentPreferencesMode + + +VideoContentPreferencesMode + + + + + + + <optional>
+ + + +
+ + "auto" + +

This Optional parameter configures +the mode for specifying content preferences for the RemoteVideoTrack. When set to "auto" the +SDK determines the render dimensions by inspecting the attached video elements. RemoteVideoTracks rendered in smaller video elements +will receive a lower resolution stream compared to the video rendered in larger video elements. When set to "manual" you can set +the dimensions programmatically by calling RemoteVideoTrack#setContentPreferences.

maxTracks + + +number + + + + + + + <optional>
+ + + +
+ +

(deprecated: use "clientTrackSwitchOffControl" instead). Optional +parameter to specify the maximum number of visible RemoteVideoTracks, which will be selected based on +Track.Priority and an N-Loudest policy. By default there are no limits on the number of visible RemoteVideoTracks. +0 or a negative value will remove any limit on the maximum number of visible RemoteVideoTracks.

mode + + +BandwidthProfileMode + + + + + + + <optional>
+ + + +
+ + "grid" + +

Optional parameter to specify how the RemoteVideoTracks' +TrackPriority values are mapped to bandwidth allocation in Group Rooms. This defaults to "grid", +which results in equal bandwidth share allocation to all RemoteVideoTracks.

renderDimensions + + +VideoRenderDimensions + + + + + + + <optional>
+ + + +
+ +

(deprecated: use "contentPreferencesMode" instead). Optional +parameter to specify the desired render dimensions of RemoteVideoTracks.

trackSwitchOffMode + + +TrackSwitchOffMode + + + + + + + <optional>
+ + + +
+ + "predicted" + +

Optional parameter to configure +how RemoteVideoTracks are switched off in response to bandwidth pressure. Defaults to "predicted".

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

VideoCodecSettings

+ + +
+
+ +
+

Video codec settings.

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
codec + + +VideoCodec + + + + +

Video codec name

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

VideoContentPreferences

+ + +
+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
renderDimensions + + +VideoTrack.Dimensions + + + + + + + <optional>
+ + + +

Render Dimensions to request for the RemoteVideoTrack.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

VideoProcessor

+ + +
+
+ +
+

A VideoProcessor, when added via VideoTrack#addProcessor, +is used to process incoming video frames before +sending to the encoder or renderer.

+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
processFrame + + +function + + + + +

A callback to receive input and output frame buffers for processing. +The input frame buffer contains the original video frame which can be used for additional processing +such as applying filters to it. The output frame buffer is used to receive the processed video frame +before sending to the encoder or renderer.

+

Any exception raised (either synchronously or asynchronously) in processFrame will result in the frame being dropped. +This callback has the following signature:

+processFrame(
+  inputFrameBuffer: OffscreenCanvas | HTMLCanvasElement | HTMLVideoElement,
+  outputFrameBuffer: HTMLCanvasElement
+): Promise<void> | void;

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
Example
+ +
class GrayScaleProcessor {
+  constructor(percentage) {
+    this.percentage = percentage;
+  }
+  processFrame(inputFrameBuffer, outputFrameBuffer) {
+    const context = outputFrameBuffer.getContext('2d');
+    context.filter = `grayscale(${this.percentage}%)`;
+    context.drawImage(inputFrameBuffer, 0, 0, inputFrameBuffer.width, inputFrameBuffer.height);
+  }
+}
+ + + +
+ + + +
+
+

VideoRenderDimensions

+ + +
+
+ + + +
Type:
+
    +
  • + +object + + + +
  • +
+ + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
high + + +VideoTrack.Dimensions + + + + + + + <optional>
+ + + +

Optional parameter to specify the desired rendering dimensions of +RemoteVideoTrack whose Track.Priority is "high". 0 or a negative value will result in the lowest +possible resolution. This defaults to 1280 x 720 (HD).

low + + +VideoTrack.Dimensions + + + + + + + <optional>
+ + + +

Optional parameter to specify the desired rendering dimensions of +RemoteVideoTrack whose Track.Priority is "low". 0 or a negative value will result in the lowest +possible resolution. This defaults to 176 x 144 (QCIF).

standard + + +VideoTrack.Dimensions + + + + + + + <optional>
+ + + +

Optional parameter to specify the desired rendering dimensions of +RemoteVideoTrack whose Track.Priority is "standard". 0 or a negative value will result in the lowest +possible resolution. This defaults to 640 x 480 (VGA).

+
+ + + + + + + + + + + + + + + + + + +
Deprecated:
+ +
+
    +
  • VideoRenderDimensions allows you to specify the desired render dimensions of RemoteVideoTracks. +You can specify 'auto' for this field - which is also default value - based on Track.Priority. The bandwidth allocation algorithm will distribute the available downlink bandwidth +proportional to the requested render dimensions. This is just an input for calculating the bandwidth to be allocated +and does not affect the actual resolution of the RemoteVideoTracks.
  • +
+
+ + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

VideoTrackPublication

+ + +
+
+ + + + + +
Type:
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+
+

VP8CodecSettings

+ + +
+
+ +
+

VP8 codec settings.

+
+ + + +
Type:
+ + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDefaultDescription
name + + +VideoCodec + + + + + + + + + + +

"VP8"

simulcast + + +boolean + + + + + + + <optional>
+ + + +
+ + false + +

Enable/disable VP8 simulcast; If +enabled, Twilio's Video SDK will send three video streams of different +qualities

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+ + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/img/glyphicons-halflings-white.png b/dist/docs/img/glyphicons-halflings-white.png new file mode 100644 index 0000000000000000000000000000000000000000..3bf6484a29d8da269f9bc874b25493a45fae3bae GIT binary patch literal 8777 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 B7G?kd literal 0 HcmV?d00001 diff --git a/dist/docs/img/glyphicons-halflings.png b/dist/docs/img/glyphicons-halflings.png new file mode 100644 index 0000000000000000000000000000000000000000..a9969993201f9cee63cf9f49217646347297b643 GIT binary patch literal 12799 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 literal 0 HcmV?d00001 diff --git a/dist/docs/index.html b/dist/docs/index.html new file mode 100644 index 000000000..c6cf234f6 --- /dev/null +++ b/dist/docs/index.html @@ -0,0 +1,471 @@ + + + + + + + Documentation Index + + + + + + + + + + + + + +
+
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + +
+

twilio-video.js

+

NPM CircleCI

+

twilio-video.js allows you to add real-time voice and video to your web apps.

+ +

We want your feedback! Please feel free to open a GitHub issue for suggested improvements or feature requests. If you need technical support, contact help@twilio.com.

+

Changelog

+

View CHANGELOG.md for details about our releases.

+

Browser Support

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ChromeEdge (Chromium)FirefoxSafariWebView
Android---
iOS-*
Linux---
macOS✓ **-
Windows✓ **--
+

** twilio-video.js supports the Chromium-based Edge browser.

+

Installation

+

NPM

+
npm install twilio-video --save
+
+

Using this method, you can require twilio-video.js like so:

+
const Video = require('twilio-video');
+
+

TypeScript definitions can now be imported using this method.

+
import * as Video from 'twilio-video';
+
+function participantDisconnected(participant: Video.RemoteParticipant) {
+  console.log('Participant "%s" disconnected', participant.identity);
+  document.getElementById(participant.sid).remove();
+}
+
+

Alternatively, you can import just the definitions you need like so:

+
import { RemoteParticiant } from 'twilio-video';
+
+function participantDisconnected(participant: RemoteParticipant) {
+  console.log('Participant "%s" disconnected', participant.identity);
+  document.getElementById(participant.sid).remove();
+}
+
+

CDN

+

Releases of twilio-video.js are hosted on a CDN, and you can include these +directly in your web app using a <script> tag.

+
<script src="//sdk.twilio.com/js/video/releases/2.28.0/twilio-video.min.js"></script>
+
+

Using this method, twilio-video.js will set a browser global:

+
const Video = Twilio.Video;
+
+

Usage

+

The following is a simple example for connecting to a Room. For more information, refer to the +API Docs.

+
const Video = require('twilio-video');
+
+Video.connect('$TOKEN', { name: 'room-name' }).then(room => {
+  console.log('Connected to Room "%s"', room.name);
+
+  room.participants.forEach(participantConnected);
+  room.on('participantConnected', participantConnected);
+
+  room.on('participantDisconnected', participantDisconnected);
+  room.once('disconnected', error => room.participants.forEach(participantDisconnected));
+});
+
+function participantConnected(participant) {
+  console.log('Participant "%s" connected', participant.identity);
+
+  const div = document.createElement('div');
+  div.id = participant.sid;
+  div.innerText = participant.identity;
+
+  participant.on('trackSubscribed', track => trackSubscribed(div, track));
+  participant.on('trackUnsubscribed', trackUnsubscribed);
+
+  participant.tracks.forEach(publication => {
+    if (publication.isSubscribed) {
+      trackSubscribed(div, publication.track);
+    }
+  });
+
+  document.body.appendChild(div);
+}
+
+function participantDisconnected(participant) {
+  console.log('Participant "%s" disconnected', participant.identity);
+  document.getElementById(participant.sid).remove();
+}
+
+function trackSubscribed(div, track) {
+  div.appendChild(track.attach());
+}
+
+function trackUnsubscribed(track) {
+  track.detach().forEach(element => element.remove());
+}
+
+

Content Security Policy (CSP)

+

Want to enable CSP in a +way that's compatible with twilio-video.js? Use the following policy directives:

+
connect-src wss://global.vss.twilio.com wss://sdkgw.us1.twilio.com
+media-src mediastream:
+
+

If you're loading twilio-video.js from sdk.twilio.com, +you should also include the following script-src directive:

+
script-src https://sdk.twilio.com
+
+

If you are enabling Krisp Noise Cancellation for +your local audio, and you are using the following default-src self directive, you should also add the +unsafe-eval directive:

+
default-src self unsafe-eval
+
+

Keep in mind, you may need to merge these policy directives with your own if +you're using other services.

+

Building

+

Fork and clone the repository. Then, install dependencies with

+
npm install
+
+

Then run the build script:

+
npm run build
+
+

The builds and docs will be placed in the dist/ directory.

+

Testing

+

Run unit tests with

+
npm run test:unit
+
+

Run integration tests with

+
ACCOUNT_SID=<Your account sid> \
+API_KEY_SID=<Your api key sid> \
+API_KEY_SECRET=<Your api key secret> \
+BROWSER=<Browser you'd like to use> \
+npm run test:integration
+
+

You can add these optional variables to control the integration test execution :

+
    +
  • Topology : Decides which type of rooms to test against.
  • +
  • Debug : To get better source mapping, and the browser does not close after tests are run which allows you to easily step through code to debug.
  • +
  • Test Files : Allows you to limit the test to just one file.
  • +
+
TOPOLOGY=<peer-to-peer|group>
+DEBUG=1
+TEST_FILES=<path_ to_the_file>
+
+

Tips

+
    +
  • Use Pre-commit hook: We have some useful pre-commit hook that would help identify common mistakes before commit. Use them by executing
  • +
+
ln -s ../../pre-commit.sh .git/hooks/pre-commit
+
+

Related

+

Applications using twilio-video.js

+ +

Developer tools

+ +

Contributing

+

Bug fixes welcome! If you're not familiar with the GitHub pull +request/contribution process, +this is a nice tutorial.

+

License

+

See LICENSE.md.

+
+ + + + + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/interfaces.list.html b/dist/docs/interfaces.list.html new file mode 100644 index 000000000..0c2a2a42f --- /dev/null +++ b/dist/docs/interfaces.list.html @@ -0,0 +1,18513 @@ + + + + + + + Documentation Interfaces + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Interfaces

+
+ +
+ +

+ +

+ + +
+ + +
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +

Classes

+ +
+
AccessTokenExpiredError
+
+ +
AccessTokenGrantsInvalidError
+
+ +
AccessTokenHeaderInvalidError
+
+ +
AccessTokenInvalidError
+
+ +
AccessTokenIssuerInvalidError
+
+ +
AccessTokenNotYetValidError
+
+ +
AccessTokenSignatureInvalidError
+
+ +
AudioTrack
+
+ +
ConfigurationAcquireFailedError
+
+ +
ConfigurationAcquireTurnFailedError
+
+ +
LocalAudioTrack
+
+ +
LocalAudioTrackPublication
+
+ +
LocalAudioTrackStats
+
+ +
LocalDataTrack
+
+ +
LocalDataTrackPublication
+
+ +
LocalParticipant
+
+ +
LocalTrackPublication
+
+ +
LocalTrackStats
+
+ +
LocalVideoTrack
+
+ +
LocalVideoTrackPublication
+
+ +
LocalVideoTrackStats
+
+ +
MediaClientLocalDescFailedError
+
+ +
MediaClientRemoteDescFailedError
+
+ +
MediaConnectionError
+
+ +
MediaDTLSTransportFailedError
+
+ +
MediaNoSupportedCodecError
+
+ +
MediaServerLocalDescFailedError
+
+ +
MediaServerRemoteDescFailedError
+
+ +
NetworkQualityAudioStats
+
+ +
NetworkQualityBandwidthStats
+
+ +
NetworkQualityFractionLostStats
+
+ +
NetworkQualityLatencyStats
+
+ +
NetworkQualityMediaStats
+
+ +
NetworkQualityRecvStats
+
+ +
NetworkQualitySendOrRecvStats
+
+ +
NetworkQualitySendStats
+
+ +
NetworkQualityStats
+
+ +
NetworkQualityVideoStats
+
+ +
Participant
+
+ +
ParticipantDuplicateIdentityError
+
+ +
ParticipantIdentityCharsInvalidError
+
+ +
ParticipantIdentityInvalidError
+
+ +
ParticipantIdentityTooLongError
+
+ +
ParticipantMaxTracksExceededError
+
+ +
ParticipantNotFoundError
+
+ +
PreflightTest
+
+ +
RemoteAudioTrack
+
+ +
RemoteAudioTrackPublication
+
+ +
RemoteAudioTrackStats
+
+ +
RemoteDataTrack
+
+ +
RemoteDataTrackPublication
+
+ +
RemoteParticipant
+
+ +
RemoteTrackPublication
+
+ +
RemoteTrackStats
+
+ +
RemoteVideoTrack
+
+ +
RemoteVideoTrackPublication
+
+ +
RemoteVideoTrackStats
+
+ +
Room
+
+ +
RoomAudioOnlyFlagNotSupportedError
+
+ +
RoomCompletedError
+
+ +
RoomConnectFailedError
+
+ +
RoomCreateFailedError
+
+ +
RoomInvalidParametersError
+
+ +
RoomMaxParticipantsExceededError
+
+ +
RoomMaxParticipantsOutOfRangeError
+
+ +
RoomMediaRegionInvalidError
+
+ +
RoomMediaRegionUnavailableError
+
+ +
RoomNameCharsInvalidError
+
+ +
RoomNameInvalidError
+
+ +
RoomNameTooLongError
+
+ +
RoomNotFoundError
+
+ +
RoomRoomExistsError
+
+ +
RoomStatusCallbackInvalidError
+
+ +
RoomStatusCallbackMethodInvalidError
+
+ +
RoomStatusInvalidError
+
+ +
RoomSubscriptionOperationNotSupportedError
+
+ +
RoomTimeoutOutOfRangeError
+
+ +
RoomTrackKindNotSupportedError
+
+ +
RoomTypeInvalidError
+
+ +
SignalingConnectionDisconnectedError
+
+ +
SignalingConnectionError
+
+ +
SignalingConnectionTimeoutError
+
+ +
SignalingIncomingMessageInvalidError
+
+ +
SignalingOutgoingMessageInvalidError
+
+ +
SignalingServerBusyError
+
+ +
StatsReport
+
+ +
Track
+
+ +
TrackInvalidError
+
+ +
TrackNameCharsInvalidError
+
+ +
TrackNameInvalidError
+
+ +
TrackNameIsDuplicatedError
+
+ +
TrackNameTooLongError
+
+ +
TrackPublication
+
+ +
TrackServerTrackCapacityReachedError
+
+ +
TrackStats
+
+ +
TwilioError
+
+ +
VideoTrack
+
+
+ + + + + + + + + + + + + +

Events

+ +
+ +
+
+

disabled

+ + +
+
+ + +
+

The AudioTrack was disabled, i.e. "muted".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +AudioTrack + + + + +

The AudioTrack that was disabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The AudioTrack was enabled, i.e. "unmuted".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +AudioTrack + + + + +

The AudioTrack that was enabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The AudioTrack started. This means there is enough audio data to +begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +AudioTrack + + + + +

The AudioTrack that started

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

event

+ + +
+
+ + +
+

The SDK raised an EventListenerEvent.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
event + + +EventListenerEvent + + + + +

Context about the event raised by the SDK. +This can be one of the following:

+
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disabled

+ + +
+
+ + +
+

The LocalAudioTrack was disabled, i.e. the audio source was muted by the user.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that was +disabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The LocalAudioTrack was enabled, i.e. the audio source was unmuted by the user.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that was enabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

muted

+ + +
+
+ + +
+

The LocalAudioTrack was muted because the audio source stopped sending samples, most +likely due to another application taking said audio source, especially on mobile devices.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that was muted

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The LocalAudioTrack started. This means there is enough audio data to +begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

stopped

+ + +
+
+ + +
+

The LocalAudioTrack stopped, either because LocalAudioTrack#stop +or LocalAudioTrack#restart was called or because the underlying +MediaStreamTrack ended.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that stopped

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unmuted

+ + +
+
+ + +
+

The LocalAudioTrack was unmuted because the audio source resumed sending samples, +most likely due to the application that took over the said audio source has released it +back to the application, especially on mobile devices. This event is also fired when +LocalAudioTrack#restart is called on a muted LocalAudioTrack with a +new audio source.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that was unmuted

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The published Track was disabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The published Track was enabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warning

+ + +
+
+ + +
+

The published LocalTrack encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warningsCleared

+ + +
+
+ + +
+

The published LocalTrack cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The published Track was disabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The published Track was enabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warning

+ + +
+
+ + +
+

The published LocalTrack encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warningsCleared

+ + +
+
+ + +
+

The published LocalTrack cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disconnected

+ + +
+
+ + +
+

The Participant has disconnected.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +Participant + + + + +

The Participant that disconnected.

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

networkQualityLevelChanged

+ + +
+
+ + +
+

The Participant's NetworkQualityLevel changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
networkQualityLevel + + +NetworkQualityLevel + + + + + + + + + + +

The new +NetworkQualityLevel

networkQualityStats + + +NetworkQualityStats + + + + + + + + + <nullable>
+ + + +

The NetworkQualityStats +based on which NetworkQualityLevel is calculated, if any

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnected

+ + +
+
+ + +
+

The LocalParticipant has reconnected to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnecting

+ + +
+
+ + +
+

The LocalParticipant is reconnecting to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDimensionsChanged

+ + +
+
+ + +
+

One of the LocalParticipant's LocalVideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack whose dimensions changed

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

A LocalTrack was disabled by the LocalParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalTrack + + + + +

The LocalTrack that was disabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

A LocalTrack was enabled by the LocalParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalTrack + + + + +

The LocalTrack that was enabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackPublicationFailed

+ + +
+
+ + +
+

A LocalTrack failed to publish. Check the error message for more +information. In a Large Group Room (Maximum Participants greater than 50), +this event is raised with a ParticipantMaxTracksExceededError either +when attempting to publish the LocalTrack will exceed the Maximum Published +Tracks limit of 16, or the LocalTrack is part of a set of LocalTracks +which along with the published Tracks exceeds 16.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

A TwilioError explaining why publication +failed

localTrack + + +LocalTrack + + + + +

The LocalTrack that failed to +publish

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackPublished

+ + +
+
+ + +
+

A LocalTrack that was added using LocalParticipant#publishTrack was successfully published. This event +is not raised for LocalTracks added in ConnectOptions.tracks or auto-created within +connect.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +LocalTrackPublication + + + + +

The resulting +LocalTrackPublication for the published LocalTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackStarted

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTracks started.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalTrack + + + + +

The LocalTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackStopped

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTracks stopped, either +because LocalTrack#stop was called or because the underlying +MediaStreamTrack ended).

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalTrack + + + + +

The LocalTrack that stopped

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackWarning

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTrackPublications encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

publication + + +LocalTrackPublication + + + + +

The LocalTrackPublication that encountered the warning.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackWarningsCleared

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTrackPublications cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +LocalTrackPublication + + + + +

The LocalTrackPublication that cleared all warnings.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The published Track was disabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The published Track was enabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warning

+ + +
+
+ + +
+

The published LocalTrack encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warningsCleared

+ + +
+
+ + +
+

The published LocalTrack cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

dimensionsChanged

+ + +
+
+ + +
+

The VideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack whose dimensions changed

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disabled

+ + +
+
+ + +
+

The LocalVideoTrack was disabled, i.e. the video source was paused by the user.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that was +disabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The LocalVideoTrack was enabled, i.e. the video source was unpaused by the user.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that was enabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

muted

+ + +
+
+ + +
+

The LocalVideoTrack was muted because the video source stopped sending frames, most +likely due to another application taking said video source, especially on mobile devices.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that was muted

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The LocalVideoTrack started. This means there is enough video data +to begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

stopped

+ + +
+
+ + +
+

The LocalVideoTrack stopped, either because LocalVideoTrack#stop +or LocalVideoTrack#restart was called or because the underlying +MediaStreamTrack ended.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that stopped

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unmuted

+ + +
+
+ + +
+

The LocalVideoTrack was unmuted because the video source resumed sending frames, +most likely due to the application that took over the said video source has released it +back to the application, especially on mobile devices. This event is also fired when +LocalVideoTrack#restart is called on a muted LocalVideoTrack with a +new video source.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that was unmuted

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The published Track was disabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The published Track was enabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warning

+ + +
+
+ + +
+

The published LocalTrack encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warningsCleared

+ + +
+
+ + +
+

The published LocalTrack cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disconnected

+ + +
+
+ + +
+

The Participant has disconnected.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +Participant + + + + +

The Participant that disconnected.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

networkQualityLevelChanged

+ + +
+
+ + +
+

The Participant's NetworkQualityLevel changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
networkQualityLevel + + +NetworkQualityLevel + + + + + + + + + + +

The new +NetworkQualityLevel

networkQualityStats + + +NetworkQualityStats + + + + + + + + + <nullable>
+ + + +

The NetworkQualityStats +based on which NetworkQualityLevel is calculated, if any

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnected

+ + +
+
+ + +
+

The Participant has reconnected to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnecting

+ + +
+
+ + +
+

The Participant is reconnecting to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDimensionsChanged

+ + +
+
+ + +
+

One of the Participant's VideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack whose dimensions changed

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackStarted

+ + +
+
+ + +
+

One of the Participant's Tracks started.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +Track + + + + +

The Track that started

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

completed

+ + +
+
+ + +
+

Preflight test has completed successfully.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
report + + +PreflightTestReport + + + + +

Results of the test.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

failed

+ + +
+
+ + +
+

Preflight test has encountered a failure and is now stopped.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError +| + +Error + + + + +

A TwilioError or a DOMException. +Possible TwilioErrors include Signaling and Media related errors which can be found +here.

report + + +PreflightTestReport + + + + +

Partial results gathered during the test. Use this information to help determine the cause of failure.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

progress

+ + +
+
+ + +
+

Emitted to indicate progress of the test

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
progress + + +PreflightProgress + + + + +

Indicates the status completed.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disabled

+ + +
+
+ + +
+

The RemoteAudioTrack was disabled, i.e. "muted".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

The RemoteAudioTrack that was +disabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The RemoteAudioTrack was enabled, i.e. "unmuted".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

The RemoteAudioTrack that was +enabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The RemoteAudioTrack started. This means there is enough audio data +to begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

The RemoteAudioTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOff

+ + +
+
+ + +
+

A RemoteAudioTrack was switched off.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

The RemoteAudioTrack that was +switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOn

+ + +
+
+ + +
+

A RemoteAudioTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

The RemoteAudioTrack that was +switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscribed

+ + +
+
+ + +
+

Your LocalParticipant subscribed to the RemoteAudioTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

the RemoteAudioTrack that was subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscriptionFailed

+ + +
+
+ + +
+

Your LocalParticipant failed to subscribe to the RemoteAudioTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

the reason the RemoteAudioTrack could not be +subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The RemoteAudioTrack was disabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The RemoteAudioTrack was enabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unsubscribed

+ + +
+
+ + +
+

Your LocalParticipant unsubscribed from the RemoteAudioTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

the RemoteAudioTrack that was unsubscribed from

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

message

+ + +
+
+ + +
+

A message was received over the RemoteDataTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
data + + +string +| + +ArrayBuffer + + + + +
track + + +RemoteDataTrack + + + + +

The RemoteDataTrack that received +the message

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOff

+ + +
+
+ + +
+

A RemoteDataTrack was switched off.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteDataTrack + + + + +

The RemoteDataTrack that was +switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOn

+ + +
+
+ + +
+

A RemoteDataTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteDataTrack + + + + +

The RemoteDataTrack that was +switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscribed

+ + +
+
+ + +
+

Your LocalParticipant subscribed to the RemoteDataTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteDataTrack + + + + +

the RemoteDataTrack that was subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscriptionFailed

+ + +
+
+ + +
+

Your LocalParticipant failed to subscribe to the RemoteDataTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

the reason the RemoteDataTrack could not be +subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unsubscribed

+ + +
+
+ + +
+

Your LocalParticipant unsubscribed from the RemoteDataTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteDataTrack + + + + +

the RemoteDataTrack that was unsubscribed from

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disconnected

+ + +
+
+ + +
+

The Participant has disconnected.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +Participant + + + + +

The Participant that disconnected.

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

networkQualityLevelChanged

+ + +
+
+ + +
+

The Participant's NetworkQualityLevel changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
networkQualityLevel + + +NetworkQualityLevel + + + + + + + + + + +

The new +NetworkQualityLevel

networkQualityStats + + +NetworkQualityStats + + + + + + + + + <nullable>
+ + + +

The NetworkQualityStats +based on which NetworkQualityLevel is calculated, if any

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnected

+ + +
+
+ + +
+

The RemoteParticipant has reconnected to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnecting

+ + +
+
+ + +
+

The RemoteParticipant is reconnecting to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDimensionsChanged

+ + +
+
+ + +
+

One of the RemoteParticipant's RemoteVideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack whose dimensions changed

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

A RemoteTrack was disabled by the RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication associated with the disabled RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

A RemoteTrack was enabled by the RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication associated with the enabled RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackMessage

+ + +
+
+ + +
+

A message was received over one of the RemoteParticipant's +RemoteDataTracks.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
data + + +string +| + +ArrayBuffer + + + + +
track + + +RemoteDataTrack + + + + +

The RemoteDataTrack over which the +message was received

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackPublished

+ + +
+
+ + +
+

A RemoteTrack was published by the RemoteParticipant after +connecting to the Room. This event is not emitted for +RemoteTracks that were published while the RemoteParticipant +was connecting to the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +which represents the published RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
function trackPublished(publication) {
+  console.log(`Track ${publication.trackSid} was published`);
+}
+
+room.on('participantConnected', participant => {
+  // Handle RemoteTracks published while connecting to the Room.
+  participant.trackPublications.forEach(trackPublished);
+
+  // Handle RemoteTracks published after connecting to the Room.
+  participant.on('trackPublished', trackPublished);
+});
+ + + +
+ + + +
+
+

trackPublishPriorityChanged

+ + +
+
+ + +
+

The RemoteTrackPublication's publish Track.Priority was changed by the +RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
priority + + +Track.Priority + + + + +

the RemoteTrack's new publish +Track.Priority;

publication + + +RemoteTrackPublication + + + + +

The +RemoteTrackPublication for the RemoteTrack that changed priority

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackStarted

+ + +
+
+ + +
+

One of the RemoteParticipant's RemoteTracks started.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSubscribed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was subscribed to.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was subscribed to

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSubscriptionFailed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack could not be subscribed to.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

The reason the RemoteTrack could not be +subscribed to

publication + + +RemoteTrackPublication + + + + +

The +RemoteTrackPublication for the RemoteTrack that could not +be subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOff

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was subscribed to.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was switched off

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOn

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was switched on.

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackUnpublished

+ + +
+
+ + +
+

A RemoteTrack was unpublished by the RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +which represents the unpublished RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackUnsubscribed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was unsubscribed from.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was unsubscribed from

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was unsubscribed from

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

publishPriorityChanged

+ + +
+
+ + +
+

The RemoteTrack's publish Track.Priority was changed by the +RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
priority + + +Track.Priority + + + + +

the RemoteTrack's new publish +Track.Priority; RemoteTrackPublication#publishPriority is also +updated accordingly

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscribed

+ + +
+
+ + +
+

Your LocalParticipant subscribed to the RemoteTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

the RemoteTrack that was subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscriptionFailed

+ + +
+
+ + +
+

Your LocalParticipant failed to subscribe to the RemoteTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

the reason the RemoteTrack could not be +subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The RemoteTrack was disabled.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The RemoteTrack was enabled.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOff

+ + +
+
+ + +
+

The RemoteTrack was switched off.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

the RemoteTrack that was switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOn

+ + +
+
+ + +
+

The RemoteTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

the RemoteTrack that was switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unsubscribed

+ + +
+
+ + +
+

Your LocalParticipant unsubscribed from the RemoteTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

the RemoteTrack that was unsubscribed from

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

dimensionsChanged

+ + +
+
+ + +
+

The RemoteVideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack whose +dimensions changed

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disabled

+ + +
+
+ + +
+

The RemoteVideoTrack was disabled, i.e. "paused".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack that was +disabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The RemoteVideoTrack was enabled, i.e. "resumed".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack that was +enabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The RemoteVideoTrack started. This means there is enough video data +to begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOff

+ + +
+
+ + +
+

A RemoteVideoTrack was switched off.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack that was +switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOn

+ + +
+
+ + +
+

A RemoteVideoTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack that was +switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscribed

+ + +
+
+ + +
+

Your LocalParticipant subscribed to the RemoteVideoTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

the RemoteVideoTrack that was subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscriptionFailed

+ + +
+
+ + +
+

Your LocalParticipant failed to subscribe to the RemoteVideoTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

the reason the RemoteVideoTrack could not be +subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The RemoteVideoTrack was disabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The RemoteVideoTrack was enabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unsubscribed

+ + +
+
+ + +
+

Your LocalParticipant unsubscribed from the RemoteVideoTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

the RemoteVideoTrack that was unsubscribed from

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disconnected

+ + +
+
+ + +
+

Your LocalParticipant was disconnected from the Room and all +other RemoteParticipants.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
room + + +Room + + + + + + + + + + +

The Room your +LocalParticipant was disconnected from

error + + +TwilioError + + + + + + + + + <nullable>
+ + + +

Present when the LocalParticipant got +disconnected from the Room unexpectedly

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('disconnected', function(room, error) {
+  if (error) {
+    console.log('Unexpectedly disconnected:', error);
+  }
+  myRoom.localParticipant.tracks.forEach(function(track) {
+    track.stop();
+    track.detach();
+  });
+});
+ + + +
+ + + +
+
+

dominantSpeakerChanged

+ + +
+
+ + +
+

The Dominant Speaker in the Room changed. Either the Dominant Speaker +is a new RemoteParticipant or the Dominant Speaker has been reset and +is now null.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
dominantSpeaker + + +RemoteParticipant + + + + + + + + + <nullable>
+ + + +

The Dominant Speaker in the +Room, if any

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

participantConnected

+ + +
+
+ + +
+

A RemoteParticipant joined the Room. In Large Group Rooms (Maximum +Participants greater than 50), this event is raised only when a RemoteParticipant +publishes at least one LocalTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +RemoteParticipant + + + + +

The RemoteParticipant who joined

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('participantConnected', function(participant) {
+  console.log(participant.identity + ' joined the Room');
+});
+ + + +
+ + + +
+
+

participantDisconnected

+ + +
+
+ + +
+

A RemoteParticipant left the Room. In Large Group Rooms (Maximum +Participants greater than 50), this event is raised only when a RemoteParticipant +unpublishes all its LocalTracks.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +RemoteParticipant + + + + +

The RemoteParticipant who left

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('participantDisconnected', function(participant) {
+  console.log(participant.identity + ' left the Room');
+  participant.tracks.forEach(function(track) {
+    track.detach().forEach(function(mediaElement) {
+      mediaElement.remove();
+    });
+  });
+});
+ + + +
+ + + +
+
+

participantReconnected

+ + +
+
+ + +
+

A RemoteParticipant has reconnected to the Room after a signaling connection disruption.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +RemoteParticipant + + + + +

The RemoteParticipant that has reconnected.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('participantReconnected', participant => {
+  console.log(participant.identity + ' reconnected to the Room');
+});
+ + + +
+ + + +
+
+

participantReconnecting

+ + +
+
+ + +
+

A RemoteParticipant is reconnecting to the Room after a signaling connection disruption.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +RemoteParticipant + + + + +

The RemoteParticipant that is reconnecting.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('participantReconnecting', participant => {
+  console.log(participant.identity + ' is reconnecting to the Room');
+});
+ + + +
+ + + +
+
+

reconnected

+ + +
+
+ + +
+

Your application successfully reconnected to the Room. When this +event is emitted, the Room is in state "connected".

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('reconnected', () => {
+  console.log('Reconnected!');
+});
+ + + +
+ + + +
+
+

reconnecting

+ + +
+
+ + +
+

Your application is reconnecting to the Room. This happens when there +is a disruption in your signaling connection and/or your media connection. When +this event is emitted, the Room is in state "reconnecting". If reconnecting +succeeds, the Room will emit a "reconnected" event.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +MediaConnectionError +| + +SignalingConnectionDisconnectedError + + + + +

A +MediaConnectionError if your application is reconnecting due to a +disruption in your media connection, or a SignalingConnectionDisconnectedError +if your application is reconnecting due to a disruption in your signaling connection

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('reconnecting', error => {
+  if (error.code === 53001) {
+    console.log('Reconnecting your signaling connection!', error.message);
+  } else if (error.code === 53405) {
+    console.log('Reconnecting your media connection!', error.message);
+  }
+});
+ + + +
+ + + +
+
+

recordingStarted

+ + +
+
+ + +
+

The Room is now being recorded

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

recordingStopped

+ + +
+
+ + +
+

The Room is no longer being recorded

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDimensionsChanged

+ + +
+
+ + +
+

One of the RemoteParticipant's VideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack whose dimensions changed

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteVideoTrack's dimensions changed

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

A RemoteTrack was disabled by a RemoteParticipant in the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication that represents disabled RemoteTrack

participant + + +RemoteParticipant + + + + +

The RemoteParticipant who +disabled the RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

A RemoteTrack was enabled by a RemoteParticipant in the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication that represents enabled RemoteTrack

participant + + +RemoteParticipant + + + + +

The RemoteParticipant who +enabled the RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackMessage

+ + +
+
+ + +
+

A message was received over one of the RemoteParticipant's +RemoteDataTrack's.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
data + + +string +| + +ArrayBuffer + + + + +
track + + +RemoteDataTrack + + + + +

The RemoteDataTrack over which the +message was received

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteDataTrack received the message

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackPublished

+ + +
+
+ + +
+

A RemoteTrack was published by a RemoteParticipant after +connecting to the Room. This event is not emitted for +RemoteTracks that were published while the RemoteParticipant +was connecting to the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +which represents the published RemoteTrack

participant + + +RemoteParticipant + + + + +

The RemoteParticipant who +published the RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
function trackPublished(publication, participant) {
+  console.log(`RemoteParticipant ${participant.sid} published Track ${publication.trackSid}`);
+}
+
+// Handle RemoteTracks published after connecting to the Room.
+room.on('trackPublished', trackPublished);
+
+room.on('participantConnected', participant => {
+  // Handle RemoteTracks published while connecting to the Room.
+  participant.trackPublications.forEach(publication => trackPublished(publication, participant));
+});
+ + + +
+ + + +
+
+

trackPublishPriorityChanged

+ + +
+
+ + +
+

The RemoteTrack's publish Track.Priority was changed by the +RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
priority + + +Track.Priority + + + + +

the RemoteTrack's new publish +Track.Priority;

publication + + +RemoteTrackPublication + + + + +

The +RemoteTrackPublication for the RemoteTrack that changed priority

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack changed priority

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackStarted

+ + +
+
+ + +
+

One of a RemoteParticipant's RemoteTracks in the Room started.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that started

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack started

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSubscribed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was subscribed to.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was subscribed

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was subscribed to

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack was subscribed

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
room.on('trackSubscribed', function(track, publication, participant) {
+  var participantView = document.getElementById('participant-view-' + participant.identity);
+  participantView.appendChild(track.attach());
+});
+ + + +
+ + + +
+
+

trackSubscriptionFailed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack could not be subscribed to.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

The reason the RemoteTrack could not be +subscribed to

publication + + +RemoteTrackPublication + + + + +

The +RemoteTrackPublication for the RemoteTrack that could not +be subscribed to

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack could not be subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOff

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was switched off.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was switched off

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was subscribed to

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack was switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOn

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was switched on

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was subscribed to

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack was switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackUnpublished

+ + +
+
+ + +
+

A RemoteTrack was unpublished by a RemoteParticipant to the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +which represents the unpublished RemoteTrack

participant + + +RemoteParticipant + + + + +

The RemoteParticipant who +unpublished the RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackUnsubscribed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was unsubscribed from.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was unsubscribed

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was unsubscribed from

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack was unsubscribed

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
room.on('trackUnsubscribed', function(track, publication, participant) {
+  track.detach().forEach(function(mediaElement) {
+    mediaElement.remove();
+  });
+});
+ + + +
+ + + +
+
+

trackWarning

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTrackPublications in the Room encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

publication + + +LocalTrackPublication + + + + +

The LocalTrackPublication that encountered the warning.

participant + + +LocalParticipant + + + + +

The LocalParticipant

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
room.on('trackWarning', (name, publication, participant) => {
+  if (name === 'recording-media-lost') {
+    log(`LocalTrack ${publication.track.name} is not recording media.`,
+      name, publication, participant);
+
+    // Wait a reasonable amount of time to clear the warning.
+    const timer = setTimeout(() => {
+      // If the warning is not cleared, you can manually
+      // reconnect to the room, or show a dialog to the user
+    }, 5000);
+
+    room.once('trackWarningsCleared', (publication, participant) => {
+      log('LocalTrack warnings have cleared!',
+        publication, participant);
+      clearTimeout(timer);
+    });
+  }
+});
+ + + +
+ + + +
+
+

trackWarningsCleared

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTrackPublications in the Room cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +LocalTrackPublication + + + + +

The LocalTrackPublication that cleared all warnings.

participant + + +LocalParticipant + + + + +

The LocalParticipant

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The published Track was disabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The published Track was enabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

dimensionsChanged

+ + +
+
+ + +
+

The VideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack whose dimensions changed

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disabled

+ + +
+
+ + +
+

The VideoTrack was disabled, i.e. "paused".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack that was disabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The VideoTrack was enabled, i.e. "unpaused".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack that was enabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The VideoTrack started. This means there is enough video data to +begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack that started

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/module-twilio-video.html b/dist/docs/module-twilio-video.html new file mode 100644 index 000000000..632688d2e --- /dev/null +++ b/dist/docs/module-twilio-video.html @@ -0,0 +1,1557 @@ + + + + + + + Documentation Module: twilio-video + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Module: twilio-video

+
+ +
+ +
+ + +
+
+ + + + +
+ + +
Properties:
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
isSupported + + +boolean + + + + +

true if the current browser is officially +supported by twilio-video.js; In this context, "supported" means that +twilio-video.js has been extensively tested with this browser; This +table +specifies the list of officially supported browsers.

Logger + + +object + + + + +

The loglevel +module used by the SDK. Use this object to access the internal loggers and perform actions as defined by the +loglevel APIs. +See connect for examples.

version + + +string + + + + +

current version of twilio-video.js.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + + + + + + + + + +

Methods

+ +
+ +
+
+

<static> connect(token [, options])

+ + +
+
+ + +
+

Connect to a Room. +

+By default, this will automatically acquire an array containing a +LocalAudioTrack and LocalVideoTrack before connecting to +the Room. These will be stopped when you disconnect from the +Room. +

+You can override the default behavior by specifying +options. For example, rather than acquiring a +LocalAudioTrack and LocalVideoTrack automatically, you can +pass your own array which you can stop yourself. See ConnectOptions +for more information.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
token + + +string + + + + + + + + + + +

The Access Token string

options + + +ConnectOptions + + + + + + + <optional>
+ + + + + +

Options to override the default behavior, invalid options are ignored.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +
Throws:
+
    +
  • + +
    + + +RangeError + + + + +
    + +
  • + +
  • + +
    + + +TwilioError + + + + +
    + +
  • + +
  • + +
    + + +TypeError + + + + +
    + +
  • +
+ + +
Returns:
+ + + + +
+
+ Type +
+
+ +CancelablePromise.<Room> + + + +
+
+ + + + + +
Examples
+ +
var Video = require('twilio-video');
+var token = getAccessToken();
+Video.connect(token, {
+  name: 'my-cool-room'
+}).then(function(room) {
+  room.on('participantConnected', function(participant) {
+    console.log(participant.identity + ' has connected');
+  });
+  room.once('disconnected', function() {
+    console.log('You left the Room:', room.name);
+  });
+}).catch(error => {
+  console.log('Could not connect to the Room:', error.message);
+});
+ +
var Video = require('twilio-video');
+var token = getAccessToken();
+
+// Connect with audio-only
+Video.connect(token, {
+  name: 'my-cool-room',
+  audio: true
+}).then(function(room) {
+  room.on('participantConnected', function(participant) {
+    console.log(participant.identity + ' has connected');
+  });
+
+  room.once('disconnected', function() {
+    console.log('You left the Room:', room.name);
+  });
+}).catch(error => {
+  console.log('Could not connect to the Room:', error.message);
+});
+ +
var Video = require('twilio-video');
+var token = getAccessToken();
+
+// Connect with media acquired using getUserMedia()
+navigator.mediaDevices.getUserMedia({
+  audio: true,
+  video: true
+}).then(function(mediaStream) {
+  return Video.connect(token, {
+    name: 'my-cool-room',
+    tracks: mediaStream.getTracks()
+  });
+}).then(function(room) {
+  room.on('participantConnected', function(participant) {
+    console.log(participant.identity + ' has connected');
+  });
+
+  room.once('disconnected', function() {
+    console.log('You left the Room:', room.name);
+  });
+}).catch(error => {
+  console.log('Could not connect to the Room:', error.message);
+});
+ +
var Video = require('twilio-video');
+var token = getAccessToken();
+
+// Connect with custom names for LocalAudioTrack and LocalVideoTrack
+Video.connect(token, {
+  name: 'my-cool-room'
+  audio: { name: 'microphone' },
+  video: { name: 'camera' }
+}).then(function(room) {
+  room.localParticipants.trackPublications.forEach(function(publication) {
+    console.log('The LocalTrack "' + publication.trackName + '" was successfully published');
+  });
+}).catch(error => {
+  console.log('Could not connect to the Room:', error.message);
+});
+ +
// Accessing the SDK logger
+var { Logger, connect } = require('twilio-video');
+var token = getAccessToken();
+
+var logger = Logger.getLogger('twilio-video');
+
+// Listen for logs
+var originalFactory = logger.methodFactory;
+logger.methodFactory = function (methodName, logLevel, loggerName) {
+  var method = originalFactory(methodName, logLevel, loggerName);
+
+  return function (datetime, logLevel, component, message, data) {
+    method(datetime, logLevel, component, message, data);
+    // Send to your own server
+    postDataToServer(arguments);
+  };
+};
+logger.setLevel('debug');
+
+connect(token, {
+  name: 'my-cool-room'
+}).then(function(room) {
+  room.on('participantConnected', function(participant) {
+    console.log(participant.identity + ' has connected');
+  });
+}).catch(error => {
+  console.log('Could not connect to the Room:', error.message);
+});
+ + + +
+ + + +
+
+

<static> createLocalAudioTrack( [options])

+ + +
+
+ + +
+

Request a LocalAudioTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +CreateLocalTracksOptions +| + +CreateLocalAudioTrackOptions + + + + + + + <optional>
+ + + + + +

Options for requesting a LocalAudioTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +Promise.<LocalAudioTrack> + + + +
+
+ + + + + +
Examples
+ +
var Video = require('twilio-video');
+
+// Connect to the Room with just video
+Video.connect('my-token', {
+  name: 'my-cool-room',
+  video: true
+}).then(function(room) {
+  // Add audio after connecting to the Room
+  Video.createLocalAudioTrack().then(function(localTrack) {
+    room.localParticipant.publishTrack(localTrack);
+  });
+});
+ +
var Video = require('twilio-video');
+
+// Request the LocalAudioTrack with a custom name
+// and krisp noise cancellation
+Video.createLocalAudioTrack({
+  name: 'microphone',
+  noiseCancellationOptions: {
+     vendor: 'krisp',
+     sdkAssetsPath: '/twilio-krisp-audio-plugin/1.0.0/dist'
+  }
+});
+ + + +
+ + + +
+
+

<async, static> createLocalTracks( [options])

+ + +
+
+ + +
+

Request LocalTracks. By default, it requests a +LocalAudioTrack and a LocalVideoTrack. +Note that on mobile browsers, the camera can be reserved by only one LocalVideoTrack +at any given time. If you attempt to create a second LocalVideoTrack, video frames +will no longer be supplied to the first LocalVideoTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +CreateLocalTracksOptions + + + + + + + <optional>
+ + + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +Promise.<Array.<LocalTrack>> + + + +
+
+ + + + + +
Examples
+ +
var Video = require('twilio-video');
+// Request audio and video tracks
+Video.createLocalTracks().then(function(localTracks) {
+  var localMediaContainer = document.getElementById('local-media-container-id');
+  localTracks.forEach(function(track) {
+    localMediaContainer.appendChild(track.attach());
+  });
+});
+ +
var Video = require('twilio-video');
+// Request just the default audio track
+Video.createLocalTracks({ audio: true }).then(function(localTracks) {
+  return Video.connect('my-token', {
+    name: 'my-cool-room',
+    tracks: localTracks
+  });
+});
+ +
var Video = require('twilio-video');
+// Request the audio and video tracks with custom names
+Video.createLocalTracks({
+  audio: { name: 'microphone' },
+  video: { name: 'camera' }
+}).then(function(localTracks) {
+  localTracks.forEach(function(localTrack) {
+    console.log(localTrack.name);
+  });
+});
+ +
var Video = require('twilio-video');
+var localTracks;
+
+// Pre-acquire tracks to display camera preview.
+Video.createLocalTracks().then(function(tracks) {
+ localTracks = tracks;
+ var localVideoTrack = localTracks.find(track => track.kind === 'video');
+ divContainer.appendChild(localVideoTrack.attach());
+})
+
+// Later, join the Room with the pre-acquired LocalTracks.
+Video.connect('token', {
+  name: 'my-cool-room',
+  tracks: localTracks
+});
+ + + +
+ + + +
+
+

<static> createLocalVideoTrack( [options])

+ + +
+
+ + +
+

Request a LocalVideoTrack. Note that on mobile browsers, +the camera can be reserved by only one LocalVideoTrack at any given +time. If you attempt to create a second LocalVideoTrack, video frames +will no longer be supplied to the first LocalVideoTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
options + + +CreateLocalTrackOptions + + + + + + + <optional>
+ + + + + +

Options for requesting a LocalVideoTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +Promise.<LocalVideoTrack> + + + +
+
+ + + + + +
Examples
+ +
var Video = require('twilio-video');
+
+// Connect to the Room with just audio
+Video.connect('my-token', {
+  name: 'my-cool-room',
+  audio: true
+}).then(function(room) {
+  // Add video after connecting to the Room
+  Video.createLocalVideoTrack().then(function(localTrack) {
+    room.localParticipant.publishTrack(localTrack);
+  });
+});
+ +
var Video = require('twilio-video');
+
+// Request the default LocalVideoTrack with a custom name
+Video.createLocalVideoTrack({ name: 'camera' }).then(function(localTrack) {
+  console.log(localTrack.name); // 'camera'
+});
+ + + +
+ + + +
+
+

<static> runPreflight(token, options)

+ + +
+
+ + +
+

Run a preflight test. This method will start a test to check the quality of network connection.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
token + + +string + + + + +

The Access Token string

options + + +PreflightOptions + + + + +

Options for the test

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
Returns:
+ + +
+

preflightTest - An instance to be used to monitor progress of the test.

+
+ + + +
+
+ Type +
+
+ +PreflightTest + + + +
+
+ + + + + +
Example
+ +
var { runPreflight } = require('twilio-video');
+var preflight = runPreflight(token, preflightOptions);
+preflightTest.on('progress', progress => {
+  console.log('preflight progress:', progress);
+});
+
+preflightTest.on('failed', (error, report) => {
+  console.error('preflight error:', error, report);
+});
+
+preflightTest.on('completed', report => {
+  console.log('preflight completed:', report));
+});
+ + + +
+ +
+ + + + + +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/modules.list.html b/dist/docs/modules.list.html new file mode 100644 index 000000000..84322709e --- /dev/null +++ b/dist/docs/modules.list.html @@ -0,0 +1,18513 @@ + + + + + + + Documentation Modules + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +

Modules

+
+ +
+ +

+ +

+ + +
+ + +
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +

Classes

+ +
+
AccessTokenExpiredError
+
+ +
AccessTokenGrantsInvalidError
+
+ +
AccessTokenHeaderInvalidError
+
+ +
AccessTokenInvalidError
+
+ +
AccessTokenIssuerInvalidError
+
+ +
AccessTokenNotYetValidError
+
+ +
AccessTokenSignatureInvalidError
+
+ +
AudioTrack
+
+ +
ConfigurationAcquireFailedError
+
+ +
ConfigurationAcquireTurnFailedError
+
+ +
LocalAudioTrack
+
+ +
LocalAudioTrackPublication
+
+ +
LocalAudioTrackStats
+
+ +
LocalDataTrack
+
+ +
LocalDataTrackPublication
+
+ +
LocalParticipant
+
+ +
LocalTrackPublication
+
+ +
LocalTrackStats
+
+ +
LocalVideoTrack
+
+ +
LocalVideoTrackPublication
+
+ +
LocalVideoTrackStats
+
+ +
MediaClientLocalDescFailedError
+
+ +
MediaClientRemoteDescFailedError
+
+ +
MediaConnectionError
+
+ +
MediaDTLSTransportFailedError
+
+ +
MediaNoSupportedCodecError
+
+ +
MediaServerLocalDescFailedError
+
+ +
MediaServerRemoteDescFailedError
+
+ +
NetworkQualityAudioStats
+
+ +
NetworkQualityBandwidthStats
+
+ +
NetworkQualityFractionLostStats
+
+ +
NetworkQualityLatencyStats
+
+ +
NetworkQualityMediaStats
+
+ +
NetworkQualityRecvStats
+
+ +
NetworkQualitySendOrRecvStats
+
+ +
NetworkQualitySendStats
+
+ +
NetworkQualityStats
+
+ +
NetworkQualityVideoStats
+
+ +
Participant
+
+ +
ParticipantDuplicateIdentityError
+
+ +
ParticipantIdentityCharsInvalidError
+
+ +
ParticipantIdentityInvalidError
+
+ +
ParticipantIdentityTooLongError
+
+ +
ParticipantMaxTracksExceededError
+
+ +
ParticipantNotFoundError
+
+ +
PreflightTest
+
+ +
RemoteAudioTrack
+
+ +
RemoteAudioTrackPublication
+
+ +
RemoteAudioTrackStats
+
+ +
RemoteDataTrack
+
+ +
RemoteDataTrackPublication
+
+ +
RemoteParticipant
+
+ +
RemoteTrackPublication
+
+ +
RemoteTrackStats
+
+ +
RemoteVideoTrack
+
+ +
RemoteVideoTrackPublication
+
+ +
RemoteVideoTrackStats
+
+ +
Room
+
+ +
RoomAudioOnlyFlagNotSupportedError
+
+ +
RoomCompletedError
+
+ +
RoomConnectFailedError
+
+ +
RoomCreateFailedError
+
+ +
RoomInvalidParametersError
+
+ +
RoomMaxParticipantsExceededError
+
+ +
RoomMaxParticipantsOutOfRangeError
+
+ +
RoomMediaRegionInvalidError
+
+ +
RoomMediaRegionUnavailableError
+
+ +
RoomNameCharsInvalidError
+
+ +
RoomNameInvalidError
+
+ +
RoomNameTooLongError
+
+ +
RoomNotFoundError
+
+ +
RoomRoomExistsError
+
+ +
RoomStatusCallbackInvalidError
+
+ +
RoomStatusCallbackMethodInvalidError
+
+ +
RoomStatusInvalidError
+
+ +
RoomSubscriptionOperationNotSupportedError
+
+ +
RoomTimeoutOutOfRangeError
+
+ +
RoomTrackKindNotSupportedError
+
+ +
RoomTypeInvalidError
+
+ +
SignalingConnectionDisconnectedError
+
+ +
SignalingConnectionError
+
+ +
SignalingConnectionTimeoutError
+
+ +
SignalingIncomingMessageInvalidError
+
+ +
SignalingOutgoingMessageInvalidError
+
+ +
SignalingServerBusyError
+
+ +
StatsReport
+
+ +
Track
+
+ +
TrackInvalidError
+
+ +
TrackNameCharsInvalidError
+
+ +
TrackNameInvalidError
+
+ +
TrackNameIsDuplicatedError
+
+ +
TrackNameTooLongError
+
+ +
TrackPublication
+
+ +
TrackServerTrackCapacityReachedError
+
+ +
TrackStats
+
+ +
TwilioError
+
+ +
VideoTrack
+
+
+ + + + + + + + + + + + + +

Events

+ +
+ +
+
+

disabled

+ + +
+
+ + +
+

The AudioTrack was disabled, i.e. "muted".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +AudioTrack + + + + +

The AudioTrack that was disabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The AudioTrack was enabled, i.e. "unmuted".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +AudioTrack + + + + +

The AudioTrack that was enabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The AudioTrack started. This means there is enough audio data to +begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +AudioTrack + + + + +

The AudioTrack that started

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

event

+ + +
+
+ + +
+

The SDK raised an EventListenerEvent.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
event + + +EventListenerEvent + + + + +

Context about the event raised by the SDK. +This can be one of the following:

+
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disabled

+ + +
+
+ + +
+

The LocalAudioTrack was disabled, i.e. the audio source was muted by the user.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that was +disabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The LocalAudioTrack was enabled, i.e. the audio source was unmuted by the user.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that was enabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

muted

+ + +
+
+ + +
+

The LocalAudioTrack was muted because the audio source stopped sending samples, most +likely due to another application taking said audio source, especially on mobile devices.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that was muted

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The LocalAudioTrack started. This means there is enough audio data to +begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

stopped

+ + +
+
+ + +
+

The LocalAudioTrack stopped, either because LocalAudioTrack#stop +or LocalAudioTrack#restart was called or because the underlying +MediaStreamTrack ended.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that stopped

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unmuted

+ + +
+
+ + +
+

The LocalAudioTrack was unmuted because the audio source resumed sending samples, +most likely due to the application that took over the said audio source has released it +back to the application, especially on mobile devices. This event is also fired when +LocalAudioTrack#restart is called on a muted LocalAudioTrack with a +new audio source.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalAudioTrack + + + + +

The LocalAudioTrack that was unmuted

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The published Track was disabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The published Track was enabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warning

+ + +
+
+ + +
+

The published LocalTrack encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warningsCleared

+ + +
+
+ + +
+

The published LocalTrack cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The published Track was disabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The published Track was enabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warning

+ + +
+
+ + +
+

The published LocalTrack encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warningsCleared

+ + +
+
+ + +
+

The published LocalTrack cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disconnected

+ + +
+
+ + +
+

The Participant has disconnected.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +Participant + + + + +

The Participant that disconnected.

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

networkQualityLevelChanged

+ + +
+
+ + +
+

The Participant's NetworkQualityLevel changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
networkQualityLevel + + +NetworkQualityLevel + + + + + + + + + + +

The new +NetworkQualityLevel

networkQualityStats + + +NetworkQualityStats + + + + + + + + + <nullable>
+ + + +

The NetworkQualityStats +based on which NetworkQualityLevel is calculated, if any

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnected

+ + +
+
+ + +
+

The LocalParticipant has reconnected to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnecting

+ + +
+
+ + +
+

The LocalParticipant is reconnecting to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDimensionsChanged

+ + +
+
+ + +
+

One of the LocalParticipant's LocalVideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack whose dimensions changed

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

A LocalTrack was disabled by the LocalParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalTrack + + + + +

The LocalTrack that was disabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

A LocalTrack was enabled by the LocalParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalTrack + + + + +

The LocalTrack that was enabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackPublicationFailed

+ + +
+
+ + +
+

A LocalTrack failed to publish. Check the error message for more +information. In a Large Group Room (Maximum Participants greater than 50), +this event is raised with a ParticipantMaxTracksExceededError either +when attempting to publish the LocalTrack will exceed the Maximum Published +Tracks limit of 16, or the LocalTrack is part of a set of LocalTracks +which along with the published Tracks exceeds 16.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

A TwilioError explaining why publication +failed

localTrack + + +LocalTrack + + + + +

The LocalTrack that failed to +publish

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackPublished

+ + +
+
+ + +
+

A LocalTrack that was added using LocalParticipant#publishTrack was successfully published. This event +is not raised for LocalTracks added in ConnectOptions.tracks or auto-created within +connect.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +LocalTrackPublication + + + + +

The resulting +LocalTrackPublication for the published LocalTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackStarted

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTracks started.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalTrack + + + + +

The LocalTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackStopped

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTracks stopped, either +because LocalTrack#stop was called or because the underlying +MediaStreamTrack ended).

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalTrack + + + + +

The LocalTrack that stopped

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackWarning

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTrackPublications encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

publication + + +LocalTrackPublication + + + + +

The LocalTrackPublication that encountered the warning.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackWarningsCleared

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTrackPublications cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +LocalTrackPublication + + + + +

The LocalTrackPublication that cleared all warnings.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The published Track was disabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The published Track was enabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warning

+ + +
+
+ + +
+

The published LocalTrack encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warningsCleared

+ + +
+
+ + +
+

The published LocalTrack cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

dimensionsChanged

+ + +
+
+ + +
+

The VideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack whose dimensions changed

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disabled

+ + +
+
+ + +
+

The LocalVideoTrack was disabled, i.e. the video source was paused by the user.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that was +disabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The LocalVideoTrack was enabled, i.e. the video source was unpaused by the user.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that was enabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

muted

+ + +
+
+ + +
+

The LocalVideoTrack was muted because the video source stopped sending frames, most +likely due to another application taking said video source, especially on mobile devices.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that was muted

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The LocalVideoTrack started. This means there is enough video data +to begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

stopped

+ + +
+
+ + +
+

The LocalVideoTrack stopped, either because LocalVideoTrack#stop +or LocalVideoTrack#restart was called or because the underlying +MediaStreamTrack ended.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that stopped

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unmuted

+ + +
+
+ + +
+

The LocalVideoTrack was unmuted because the video source resumed sending frames, +most likely due to the application that took over the said video source has released it +back to the application, especially on mobile devices. This event is also fired when +LocalVideoTrack#restart is called on a muted LocalVideoTrack with a +new video source.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +LocalVideoTrack + + + + +

The LocalVideoTrack that was unmuted

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The published Track was disabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The published Track was enabled.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warning

+ + +
+
+ + +
+

The published LocalTrack encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

warningsCleared

+ + +
+
+ + +
+

The published LocalTrack cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disconnected

+ + +
+
+ + +
+

The Participant has disconnected.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +Participant + + + + +

The Participant that disconnected.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

networkQualityLevelChanged

+ + +
+
+ + +
+

The Participant's NetworkQualityLevel changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
networkQualityLevel + + +NetworkQualityLevel + + + + + + + + + + +

The new +NetworkQualityLevel

networkQualityStats + + +NetworkQualityStats + + + + + + + + + <nullable>
+ + + +

The NetworkQualityStats +based on which NetworkQualityLevel is calculated, if any

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnected

+ + +
+
+ + +
+

The Participant has reconnected to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnecting

+ + +
+
+ + +
+

The Participant is reconnecting to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDimensionsChanged

+ + +
+
+ + +
+

One of the Participant's VideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack whose dimensions changed

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackStarted

+ + +
+
+ + +
+

One of the Participant's Tracks started.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +Track + + + + +

The Track that started

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

completed

+ + +
+
+ + +
+

Preflight test has completed successfully.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
report + + +PreflightTestReport + + + + +

Results of the test.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

failed

+ + +
+
+ + +
+

Preflight test has encountered a failure and is now stopped.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError +| + +Error + + + + +

A TwilioError or a DOMException. +Possible TwilioErrors include Signaling and Media related errors which can be found +here.

report + + +PreflightTestReport + + + + +

Partial results gathered during the test. Use this information to help determine the cause of failure.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

progress

+ + +
+
+ + +
+

Emitted to indicate progress of the test

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
progress + + +PreflightProgress + + + + +

Indicates the status completed.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disabled

+ + +
+
+ + +
+

The RemoteAudioTrack was disabled, i.e. "muted".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

The RemoteAudioTrack that was +disabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The RemoteAudioTrack was enabled, i.e. "unmuted".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

The RemoteAudioTrack that was +enabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The RemoteAudioTrack started. This means there is enough audio data +to begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

The RemoteAudioTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOff

+ + +
+
+ + +
+

A RemoteAudioTrack was switched off.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

The RemoteAudioTrack that was +switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOn

+ + +
+
+ + +
+

A RemoteAudioTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

The RemoteAudioTrack that was +switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscribed

+ + +
+
+ + +
+

Your LocalParticipant subscribed to the RemoteAudioTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

the RemoteAudioTrack that was subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscriptionFailed

+ + +
+
+ + +
+

Your LocalParticipant failed to subscribe to the RemoteAudioTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

the reason the RemoteAudioTrack could not be +subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The RemoteAudioTrack was disabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The RemoteAudioTrack was enabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unsubscribed

+ + +
+
+ + +
+

Your LocalParticipant unsubscribed from the RemoteAudioTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteAudioTrack + + + + +

the RemoteAudioTrack that was unsubscribed from

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

message

+ + +
+
+ + +
+

A message was received over the RemoteDataTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
data + + +string +| + +ArrayBuffer + + + + +
track + + +RemoteDataTrack + + + + +

The RemoteDataTrack that received +the message

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOff

+ + +
+
+ + +
+

A RemoteDataTrack was switched off.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteDataTrack + + + + +

The RemoteDataTrack that was +switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOn

+ + +
+
+ + +
+

A RemoteDataTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteDataTrack + + + + +

The RemoteDataTrack that was +switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscribed

+ + +
+
+ + +
+

Your LocalParticipant subscribed to the RemoteDataTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteDataTrack + + + + +

the RemoteDataTrack that was subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscriptionFailed

+ + +
+
+ + +
+

Your LocalParticipant failed to subscribe to the RemoteDataTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

the reason the RemoteDataTrack could not be +subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unsubscribed

+ + +
+
+ + +
+

Your LocalParticipant unsubscribed from the RemoteDataTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteDataTrack + + + + +

the RemoteDataTrack that was unsubscribed from

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disconnected

+ + +
+
+ + +
+

The Participant has disconnected.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +Participant + + + + +

The Participant that disconnected.

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

networkQualityLevelChanged

+ + +
+
+ + +
+

The Participant's NetworkQualityLevel changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
networkQualityLevel + + +NetworkQualityLevel + + + + + + + + + + +

The new +NetworkQualityLevel

networkQualityStats + + +NetworkQualityStats + + + + + + + + + <nullable>
+ + + +

The NetworkQualityStats +based on which NetworkQualityLevel is calculated, if any

+ + + + +
+ + + + + + + +
Inherited From:
+
+ +
+ + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnected

+ + +
+
+ + +
+

The RemoteParticipant has reconnected to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

reconnecting

+ + +
+
+ + +
+

The RemoteParticipant is reconnecting to the Room after a signaling connection disruption.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDimensionsChanged

+ + +
+
+ + +
+

One of the RemoteParticipant's RemoteVideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack whose dimensions changed

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

A RemoteTrack was disabled by the RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication associated with the disabled RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

A RemoteTrack was enabled by the RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication associated with the enabled RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackMessage

+ + +
+
+ + +
+

A message was received over one of the RemoteParticipant's +RemoteDataTracks.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
data + + +string +| + +ArrayBuffer + + + + +
track + + +RemoteDataTrack + + + + +

The RemoteDataTrack over which the +message was received

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackPublished

+ + +
+
+ + +
+

A RemoteTrack was published by the RemoteParticipant after +connecting to the Room. This event is not emitted for +RemoteTracks that were published while the RemoteParticipant +was connecting to the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +which represents the published RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
function trackPublished(publication) {
+  console.log(`Track ${publication.trackSid} was published`);
+}
+
+room.on('participantConnected', participant => {
+  // Handle RemoteTracks published while connecting to the Room.
+  participant.trackPublications.forEach(trackPublished);
+
+  // Handle RemoteTracks published after connecting to the Room.
+  participant.on('trackPublished', trackPublished);
+});
+ + + +
+ + + +
+
+

trackPublishPriorityChanged

+ + +
+
+ + +
+

The RemoteTrackPublication's publish Track.Priority was changed by the +RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
priority + + +Track.Priority + + + + +

the RemoteTrack's new publish +Track.Priority;

publication + + +RemoteTrackPublication + + + + +

The +RemoteTrackPublication for the RemoteTrack that changed priority

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackStarted

+ + +
+
+ + +
+

One of the RemoteParticipant's RemoteTracks started.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSubscribed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was subscribed to.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was subscribed to

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSubscriptionFailed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack could not be subscribed to.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

The reason the RemoteTrack could not be +subscribed to

publication + + +RemoteTrackPublication + + + + +

The +RemoteTrackPublication for the RemoteTrack that could not +be subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOff

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was subscribed to.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was switched off

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOn

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was switched on.

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackUnpublished

+ + +
+
+ + +
+

A RemoteTrack was unpublished by the RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +which represents the unpublished RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackUnsubscribed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was unsubscribed from.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was unsubscribed from

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was unsubscribed from

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

publishPriorityChanged

+ + +
+
+ + +
+

The RemoteTrack's publish Track.Priority was changed by the +RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
priority + + +Track.Priority + + + + +

the RemoteTrack's new publish +Track.Priority; RemoteTrackPublication#publishPriority is also +updated accordingly

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscribed

+ + +
+
+ + +
+

Your LocalParticipant subscribed to the RemoteTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

the RemoteTrack that was subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscriptionFailed

+ + +
+
+ + +
+

Your LocalParticipant failed to subscribe to the RemoteTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

the reason the RemoteTrack could not be +subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The RemoteTrack was disabled.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The RemoteTrack was enabled.

+
+ + + + + + + + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOff

+ + +
+
+ + +
+

The RemoteTrack was switched off.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

the RemoteTrack that was switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOn

+ + +
+
+ + +
+

The RemoteTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

the RemoteTrack that was switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unsubscribed

+ + +
+
+ + +
+

Your LocalParticipant unsubscribed from the RemoteTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

the RemoteTrack that was unsubscribed from

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

dimensionsChanged

+ + +
+
+ + +
+

The RemoteVideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack whose +dimensions changed

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disabled

+ + +
+
+ + +
+

The RemoteVideoTrack was disabled, i.e. "paused".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack that was +disabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The RemoteVideoTrack was enabled, i.e. "resumed".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack that was +enabled

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The RemoteVideoTrack started. This means there is enough video data +to begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack that started

+ + + + +
+ + + + + + + + + +
Overrides:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOff

+ + +
+
+ + +
+

A RemoteVideoTrack was switched off.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack that was +switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

switchedOn

+ + +
+
+ + +
+

A RemoteVideoTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack that was +switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscribed

+ + +
+
+ + +
+

Your LocalParticipant subscribed to the RemoteVideoTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

the RemoteVideoTrack that was subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

subscriptionFailed

+ + +
+
+ + +
+

Your LocalParticipant failed to subscribe to the RemoteVideoTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

the reason the RemoteVideoTrack could not be +subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The RemoteVideoTrack was disabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The RemoteVideoTrack was enabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

unsubscribed

+ + +
+
+ + +
+

Your LocalParticipant unsubscribed from the RemoteVideoTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

the RemoteVideoTrack that was unsubscribed from

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disconnected

+ + +
+
+ + +
+

Your LocalParticipant was disconnected from the Room and all +other RemoteParticipants.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
room + + +Room + + + + + + + + + + +

The Room your +LocalParticipant was disconnected from

error + + +TwilioError + + + + + + + + + <nullable>
+ + + +

Present when the LocalParticipant got +disconnected from the Room unexpectedly

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('disconnected', function(room, error) {
+  if (error) {
+    console.log('Unexpectedly disconnected:', error);
+  }
+  myRoom.localParticipant.tracks.forEach(function(track) {
+    track.stop();
+    track.detach();
+  });
+});
+ + + +
+ + + +
+
+

dominantSpeakerChanged

+ + +
+
+ + +
+

The Dominant Speaker in the Room changed. Either the Dominant Speaker +is a new RemoteParticipant or the Dominant Speaker has been reset and +is now null.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDescription
dominantSpeaker + + +RemoteParticipant + + + + + + + + + <nullable>
+ + + +

The Dominant Speaker in the +Room, if any

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

participantConnected

+ + +
+
+ + +
+

A RemoteParticipant joined the Room. In Large Group Rooms (Maximum +Participants greater than 50), this event is raised only when a RemoteParticipant +publishes at least one LocalTrack.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +RemoteParticipant + + + + +

The RemoteParticipant who joined

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('participantConnected', function(participant) {
+  console.log(participant.identity + ' joined the Room');
+});
+ + + +
+ + + +
+
+

participantDisconnected

+ + +
+
+ + +
+

A RemoteParticipant left the Room. In Large Group Rooms (Maximum +Participants greater than 50), this event is raised only when a RemoteParticipant +unpublishes all its LocalTracks.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +RemoteParticipant + + + + +

The RemoteParticipant who left

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('participantDisconnected', function(participant) {
+  console.log(participant.identity + ' left the Room');
+  participant.tracks.forEach(function(track) {
+    track.detach().forEach(function(mediaElement) {
+      mediaElement.remove();
+    });
+  });
+});
+ + + +
+ + + +
+
+

participantReconnected

+ + +
+
+ + +
+

A RemoteParticipant has reconnected to the Room after a signaling connection disruption.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +RemoteParticipant + + + + +

The RemoteParticipant that has reconnected.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('participantReconnected', participant => {
+  console.log(participant.identity + ' reconnected to the Room');
+});
+ + + +
+ + + +
+
+

participantReconnecting

+ + +
+
+ + +
+

A RemoteParticipant is reconnecting to the Room after a signaling connection disruption.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
participant + + +RemoteParticipant + + + + +

The RemoteParticipant that is reconnecting.

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('participantReconnecting', participant => {
+  console.log(participant.identity + ' is reconnecting to the Room');
+});
+ + + +
+ + + +
+
+

reconnected

+ + +
+
+ + +
+

Your application successfully reconnected to the Room. When this +event is emitted, the Room is in state "connected".

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('reconnected', () => {
+  console.log('Reconnected!');
+});
+ + + +
+ + + +
+
+

reconnecting

+ + +
+
+ + +
+

Your application is reconnecting to the Room. This happens when there +is a disruption in your signaling connection and/or your media connection. When +this event is emitted, the Room is in state "reconnecting". If reconnecting +succeeds, the Room will emit a "reconnected" event.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +MediaConnectionError +| + +SignalingConnectionDisconnectedError + + + + +

A +MediaConnectionError if your application is reconnecting due to a +disruption in your media connection, or a SignalingConnectionDisconnectedError +if your application is reconnecting due to a disruption in your signaling connection

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
myRoom.on('reconnecting', error => {
+  if (error.code === 53001) {
+    console.log('Reconnecting your signaling connection!', error.message);
+  } else if (error.code === 53405) {
+    console.log('Reconnecting your media connection!', error.message);
+  }
+});
+ + + +
+ + + +
+
+

recordingStarted

+ + +
+
+ + +
+

The Room is now being recorded

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

recordingStopped

+ + +
+
+ + +
+

The Room is no longer being recorded

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDimensionsChanged

+ + +
+
+ + +
+

One of the RemoteParticipant's VideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteVideoTrack + + + + +

The RemoteVideoTrack whose dimensions changed

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteVideoTrack's dimensions changed

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

A RemoteTrack was disabled by a RemoteParticipant in the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication that represents disabled RemoteTrack

participant + + +RemoteParticipant + + + + +

The RemoteParticipant who +disabled the RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

A RemoteTrack was enabled by a RemoteParticipant in the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication that represents enabled RemoteTrack

participant + + +RemoteParticipant + + + + +

The RemoteParticipant who +enabled the RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackMessage

+ + +
+
+ + +
+

A message was received over one of the RemoteParticipant's +RemoteDataTrack's.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
data + + +string +| + +ArrayBuffer + + + + +
track + + +RemoteDataTrack + + + + +

The RemoteDataTrack over which the +message was received

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteDataTrack received the message

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackPublished

+ + +
+
+ + +
+

A RemoteTrack was published by a RemoteParticipant after +connecting to the Room. This event is not emitted for +RemoteTracks that were published while the RemoteParticipant +was connecting to the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +which represents the published RemoteTrack

participant + + +RemoteParticipant + + + + +

The RemoteParticipant who +published the RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
function trackPublished(publication, participant) {
+  console.log(`RemoteParticipant ${participant.sid} published Track ${publication.trackSid}`);
+}
+
+// Handle RemoteTracks published after connecting to the Room.
+room.on('trackPublished', trackPublished);
+
+room.on('participantConnected', participant => {
+  // Handle RemoteTracks published while connecting to the Room.
+  participant.trackPublications.forEach(publication => trackPublished(publication, participant));
+});
+ + + +
+ + + +
+
+

trackPublishPriorityChanged

+ + +
+
+ + +
+

The RemoteTrack's publish Track.Priority was changed by the +RemoteParticipant.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
priority + + +Track.Priority + + + + +

the RemoteTrack's new publish +Track.Priority;

publication + + +RemoteTrackPublication + + + + +

The +RemoteTrackPublication for the RemoteTrack that changed priority

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack changed priority

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackStarted

+ + +
+
+ + +
+

One of a RemoteParticipant's RemoteTracks in the Room started.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that started

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack started

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSubscribed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was subscribed to.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was subscribed

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was subscribed to

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack was subscribed

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
room.on('trackSubscribed', function(track, publication, participant) {
+  var participantView = document.getElementById('participant-view-' + participant.identity);
+  participantView.appendChild(track.attach());
+});
+ + + +
+ + + +
+
+

trackSubscriptionFailed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack could not be subscribed to.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
error + + +TwilioError + + + + +

The reason the RemoteTrack could not be +subscribed to

publication + + +RemoteTrackPublication + + + + +

The +RemoteTrackPublication for the RemoteTrack that could not +be subscribed to

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack could not be subscribed to

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOff

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was switched off.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was switched off

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was subscribed to

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack was switched off

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackSwitchedOn

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was switched on.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was switched on

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was subscribed to

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack was switched on

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackUnpublished

+ + +
+
+ + +
+

A RemoteTrack was unpublished by a RemoteParticipant to the Room.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +which represents the unpublished RemoteTrack

participant + + +RemoteParticipant + + + + +

The RemoteParticipant who +unpublished the RemoteTrack

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackUnsubscribed

+ + +
+
+ + +
+

A RemoteParticipant's RemoteTrack was unsubscribed from.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +RemoteTrack + + + + +

The RemoteTrack that was unsubscribed

publication + + +RemoteTrackPublication + + + + +

The RemoteTrackPublication +for the RemoteTrack that was unsubscribed from

participant + + +RemoteParticipant + + + + +

The RemoteParticipant whose +RemoteTrack was unsubscribed

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
room.on('trackUnsubscribed', function(track, publication, participant) {
+  track.detach().forEach(function(mediaElement) {
+    mediaElement.remove();
+  });
+});
+ + + +
+ + + +
+
+

trackWarning

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTrackPublications in the Room encountered a warning. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
name + + +string + + + + +

The warning that was raised.

publication + + +LocalTrackPublication + + + + +

The LocalTrackPublication that encountered the warning.

participant + + +LocalParticipant + + + + +

The LocalParticipant

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
Example
+ +
room.on('trackWarning', (name, publication, participant) => {
+  if (name === 'recording-media-lost') {
+    log(`LocalTrack ${publication.track.name} is not recording media.`,
+      name, publication, participant);
+
+    // Wait a reasonable amount of time to clear the warning.
+    const timer = setTimeout(() => {
+      // If the warning is not cleared, you can manually
+      // reconnect to the room, or show a dialog to the user
+    }, 5000);
+
+    room.once('trackWarningsCleared', (publication, participant) => {
+      log('LocalTrack warnings have cleared!',
+        publication, participant);
+      clearTimeout(timer);
+    });
+  }
+});
+ + + +
+ + + +
+
+

trackWarningsCleared

+ + +
+
+ + +
+

One of the LocalParticipant's LocalTrackPublications in the Room cleared all warnings. +This event is only raised if you enabled warnings using notifyWarnings in ConnectOptions.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
publication + + +LocalTrackPublication + + + + +

The LocalTrackPublication that cleared all warnings.

participant + + +LocalParticipant + + + + +

The LocalParticipant

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackDisabled

+ + +
+
+ + +
+

The published Track was disabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

trackEnabled

+ + +
+
+ + +
+

The published Track was enabled.

+
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

dimensionsChanged

+ + +
+
+ + +
+

The VideoTrack's dimensions changed.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack whose dimensions changed

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

disabled

+ + +
+
+ + +
+

The VideoTrack was disabled, i.e. "paused".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack that was disabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

enabled

+ + +
+
+ + +
+

The VideoTrack was enabled, i.e. "unpaused".

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack that was enabled

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + +
+
+

started

+ + +
+
+ + +
+

The VideoTrack started. This means there is enough video data to +begin playback.

+
+ + + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
track + + +VideoTrack + + + + +

The VideoTrack that started

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+
+ +
+ + +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dist/docs/quicksearch.html b/dist/docs/quicksearch.html new file mode 100644 index 000000000..b6ea36cb3 --- /dev/null +++ b/dist/docs/quicksearch.html @@ -0,0 +1,31 @@ + + + + + + + + + + + + + diff --git a/dist/docs/scripts/docstrap.lib.js b/dist/docs/scripts/docstrap.lib.js new file mode 100644 index 000000000..09d9272a0 --- /dev/null +++ b/dist/docs/scripts/docstrap.lib.js @@ -0,0 +1,11 @@ +if(!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){function c(a){var b="length"in a&&a.length,c=_.type(a);return"function"!==c&&!_.isWindow(a)&&(!(1!==a.nodeType||!b)||("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a))}function d(a,b,c){if(_.isFunction(b))return _.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return _.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(ha.test(b))return _.filter(b,a,c);b=_.filter(b,a)}return _.grep(a,function(a){return U.call(b,a)>=0!==c})}function e(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}function f(a){var b=oa[a]={};return _.each(a.match(na)||[],function(a,c){b[c]=!0}),b}function g(){Z.removeEventListener("DOMContentLoaded",g,!1),a.removeEventListener("load",g,!1),_.ready()}function h(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=_.expando+h.uid++}function i(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(ua,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c||"false"!==c&&("null"===c?null:+c+""===c?+c:ta.test(c)?_.parseJSON(c):c)}catch(a){}sa.set(a,b,c)}else c=void 0;return c}function j(){return!0}function k(){return!1}function l(){try{return Z.activeElement}catch(a){}}function m(a,b){return _.nodeName(a,"table")&&_.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function n(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function o(a){var b=Ka.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function p(a,b){for(var c=0,d=a.length;d>c;c++)ra.set(a[c],"globalEval",!b||ra.get(b[c],"globalEval"))}function q(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(ra.hasData(a)&&(f=ra.access(a),g=ra.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)_.event.add(b,e,j[e][c])}sa.hasData(a)&&(h=sa.access(a),i=_.extend({},h),sa.set(b,i))}}function r(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&_.nodeName(a,b)?_.merge([a],c):c}function s(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ya.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}function t(b,c){var d,e=_(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:_.css(e[0],"display");return e.detach(),f}function u(a){var b=Z,c=Oa[a];return c||(c=t(a,b),"none"!==c&&c||(Na=(Na||_("