Properties:
| Name | Type | Argument | Description | 
|---|---|---|---|
| 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:
- Room#event:disconnected
- Room#event:participantConnected
- Room#event:participantDisconnected
- Room#event:participantReconnected
- Room#event:participantReconnecting
- Room#event:reconnected
- Room#event:reconnecting
- Room#event:recordingStarted
- Room#event:recordingStopped
- Room#event:trackDimensionsChanged
- Room#event:trackDisabled
- Room#event:trackEnabled
- Room#event:trackMessage
- Room#event:trackPublished
- Room#event:trackPublishPriorityChanged
- Room#event:trackStarted
- Room#event:trackSubscribed
- Room#event:trackSwitchedOff
- Room#event:trackSwitchedOn
- Room#event:trackUnpublished
- Room#event:trackUnsubscribed
- Room#event:trackWarning
- Room#event:trackWarningsCleared
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
- 
    
    
    
    
        Type:- string
 
Events
- 
    disconnected
- 
    
    Your LocalParticipant was disconnected from the Room and all other RemoteParticipants. Parameters:Name Type Argument Description roomRoom The Room your LocalParticipant was disconnected from errorTwilioError <nullable> 
 Present when the LocalParticipant got disconnected from the Room unexpectedly ExamplemyRoom.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:Name Type Argument Description dominantSpeakerRemoteParticipant <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:Name Type Description participantRemoteParticipant The RemoteParticipant who joined ExamplemyRoom.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:Name Type Description participantRemoteParticipant The RemoteParticipant who left ExamplemyRoom.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:Name Type Description participantRemoteParticipant The RemoteParticipant that has reconnected. ExamplemyRoom.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:Name Type Description participantRemoteParticipant The RemoteParticipant that is reconnecting. ExamplemyRoom.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". ExamplemyRoom.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:Name Type Description errorMediaConnectionError | 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 ExamplemyRoom.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:Name Type Description trackRemoteVideoTrack The RemoteVideoTrack whose dimensions changed participantRemoteParticipant The RemoteParticipant whose RemoteVideoTrack's dimensions changed 
- 
    trackDisabled
- 
    
    A RemoteTrack was disabled by a RemoteParticipant in the Room. Parameters:Name Type Description publicationRemoteTrackPublication The RemoteTrackPublication that represents disabled RemoteTrack participantRemoteParticipant The RemoteParticipant who disabled the RemoteTrack 
- 
    trackEnabled
- 
    
    A RemoteTrack was enabled by a RemoteParticipant in the Room. Parameters:Name Type Description publicationRemoteTrackPublication The RemoteTrackPublication that represents enabled RemoteTrack participantRemoteParticipant The RemoteParticipant who enabled the RemoteTrack 
- 
    trackMessage
- 
    
    A message was received over one of the RemoteParticipant's RemoteDataTrack's. Parameters:Name Type Description datastring | ArrayBuffer trackRemoteDataTrack The RemoteDataTrack over which the message was received participantRemoteParticipant 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:Name Type Description publicationRemoteTrackPublication The RemoteTrackPublication which represents the published RemoteTrack participantRemoteParticipant The RemoteParticipant who published the RemoteTrack Examplefunction 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:Name Type Description priorityTrack.Priority the RemoteTrack's new publish Track.Priority; publicationRemoteTrackPublication The RemoteTrackPublication for the RemoteTrack that changed priority participantRemoteParticipant The RemoteParticipant whose RemoteTrack changed priority 
- 
    trackStarted
- 
    
    One of a RemoteParticipant's RemoteTracks in the Room started. Parameters:Name Type Description trackRemoteTrack The RemoteTrack that started participantRemoteParticipant The RemoteParticipant whose RemoteTrack started 
- 
    trackSubscribed
- 
    
    A RemoteParticipant's RemoteTrack was subscribed to. Parameters:Name Type Description trackRemoteTrack The RemoteTrack that was subscribed publicationRemoteTrackPublication The RemoteTrackPublication for the RemoteTrack that was subscribed to participantRemoteParticipant The RemoteParticipant whose RemoteTrack was subscribed Exampleroom.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:Name Type Description errorTwilioError The reason the RemoteTrack could not be subscribed to publicationRemoteTrackPublication The RemoteTrackPublication for the RemoteTrack that could not be subscribed to participantRemoteParticipant The RemoteParticipant whose RemoteTrack could not be subscribed to 
- 
    trackSwitchedOff
- 
    
    A RemoteParticipant's RemoteTrack was switched off. Parameters:Name Type Description trackRemoteTrack The RemoteTrack that was switched off publicationRemoteTrackPublication The RemoteTrackPublication for the RemoteTrack that was subscribed to participantRemoteParticipant The RemoteParticipant whose RemoteTrack was switched off 
- 
    trackSwitchedOn
- 
    
    A RemoteParticipant's RemoteTrack was switched on. Parameters:Name Type Description trackRemoteTrack The RemoteTrack that was switched on publicationRemoteTrackPublication The RemoteTrackPublication for the RemoteTrack that was subscribed to participantRemoteParticipant The RemoteParticipant whose RemoteTrack was switched on 
- 
    trackUnpublished
- 
    
    A RemoteTrack was unpublished by a RemoteParticipant to the Room. Parameters:Name Type Description publicationRemoteTrackPublication The RemoteTrackPublication which represents the unpublished RemoteTrack participantRemoteParticipant The RemoteParticipant who unpublished the RemoteTrack 
- 
    trackUnsubscribed
- 
    
    A RemoteParticipant's RemoteTrack was unsubscribed from. Parameters:Name Type Description trackRemoteTrack The RemoteTrack that was unsubscribed publicationRemoteTrackPublication The RemoteTrackPublication for the RemoteTrack that was unsubscribed from participantRemoteParticipant The RemoteParticipant whose RemoteTrack was unsubscribed Exampleroom.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 notifyWarningsinConnectOptions.Parameters:Name Type Description namestring The warning that was raised. publicationLocalTrackPublication The LocalTrackPublication that encountered the warning. participantLocalParticipant The LocalParticipant Exampleroom.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 notifyWarningsinConnectOptions.Parameters:Name Type Description publicationLocalTrackPublication The LocalTrackPublication that cleared all warnings. participantLocalParticipant The LocalParticipant