From 810ecf81b24e7f28514107ea1cbf04d4f489ac60 Mon Sep 17 00:00:00 2001 From: twilio-ci Date: Tue, 13 Aug 2024 14:49:08 +0000 Subject: [PATCH] 2.29.0-preview.1 --- 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 | 11627 ++++++ 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 | 475 + 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 | 30431 ++++++++++++++++ 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/capturevideoframes.js | 71 + es5/media/track/capturevideoframes.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 | 590 + 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 +- 497 files changed, 338855 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/capturevideoframes.js create mode 100644 es5/media/track/capturevideoframes.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..e753f81ef --- /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..e21c2b392 --- /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..5d817092c --- /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..21b208c27 --- /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..e9bc0fb65 --- /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..7369aca6b --- /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..7c0393191 --- /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..ee8f09702 --- /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..db3d68f0e --- /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..84845fb4a --- /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..9c3db9319 --- /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..aeb858bdf --- /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..8dddc4786 --- /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..9e7e7e2bf --- /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..c6fadbefd --- /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..96110e79b --- /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..f61624822 --- /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..377a2ae48 --- /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..a2466cef7 --- /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..b22c8e9aa --- /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..b5f31a62e --- /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..68e38d470 --- /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..ef4dbfe36 --- /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..6be1a144c --- /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..b01e7af42 --- /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..b0f1cc7e1 --- /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..c45636ded --- /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..ead75ba6f --- /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..4bf657870 --- /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..f11e4a4a6 --- /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..68749e2d7 --- /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..71b3825ec --- /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..82fe84b28 --- /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..83e4e26c4 --- /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..bc3455d0c --- /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..839076acb --- /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..100aa40ed --- /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..be9ab6b5a --- /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..f10471198 --- /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..ab67a969b --- /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..718e62511 --- /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..2b2268acf --- /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..7854e52ed --- /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..beb7c2105 --- /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..87b3a1d65 --- /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..0ee53e595 --- /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..3ebea49f4 --- /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..8fc14406c --- /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..ef0e74ceb --- /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..33c6b8006 --- /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..2070c4f6f --- /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..cc14cf62b --- /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..ac9c93607 --- /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..d5cf1f903 --- /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..d7d610c47 --- /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..76fa9a2ba --- /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..09a202ba6 --- /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..9687b65ab --- /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..03fdde00d --- /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..dba2da364 --- /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..cfaa2f493 --- /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..d660b071a --- /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..a2d7f2b1a --- /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..225b2028a --- /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..f0a869b40 --- /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..dcc980b17 --- /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..16ddd74cc --- /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..e14a76a41 --- /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..a69b97212 --- /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..4b192708c --- /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..3977c4249 --- /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..7a98836e0 --- /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..a192c4196 --- /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..0704fdf6c --- /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..5ee962bef --- /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..2dfc4aa36 --- /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..94dd8d7b4 --- /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..873cee836 --- /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..5cd08bf22 --- /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..0f00ba151 --- /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..37ad81518 --- /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..da693c8c8 --- /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..808283de6 --- /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..ba542ffb0 --- /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..6d711443b --- /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..518252020 --- /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..531226c4a --- /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..afd24aded --- /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..d251d81aa --- /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..6b1f4b71a --- /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..96d466358 --- /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..33dc29920 --- /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..89620d638 --- /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..6645d083e --- /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..cb28ae393 --- /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..80268aaa3 --- /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..658826bf1 --- /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..72a212251 --- /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..a27247dc4 --- /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 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ 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..85c1b134e --- /dev/null +++ b/dist/docs/global.html @@ -0,0 +1,11627 @@ + + + + + + + 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. +
+
+videoframe - Your Video Processor will receive a VideoFrame. +On browsers that do not support VideoFrame, it will receive an HTMLVideoElement instead. +
+
+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. If you're using Canvas 2D processing (canvas.getContext('2d')), +you should set outputFrameBufferContextType to 2d. If the output frame is an ImageBitmap, +you should set outputFrameBufferContextType to bitmaprenderer. For now, this is supported only on Chrome. On other +browsers, it will fall back 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 | VideoFrame,
+  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..dfbaed879 --- /dev/null +++ b/dist/docs/index.html @@ -0,0 +1,475 @@ + + + + + + + Documentation Index + + + + + + + + + + + + + +
+
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + +
+

twilio-video.js

+

NPM CircleCI

+
+

[!WARNING]
+We are no longer allowing new customers to onboard to Twilio Video. Effective December 5th, 2026, Twilio Video will End of Life (EOL) and will cease to function for all customers. Customers may transition to any video provider they choose, however, we are recommending customers migrate to the Zoom Video SDK and we have prepared a Migration Guide. Additional information on this EOL is available in our Help Center here.

+
+

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.1/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..559a5d0f2 --- /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..fc4e96090 --- /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..ecb28bf95 --- /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..6112eefa8 --- /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||_("