Class Room

java.lang.Object
com.twilio.video.Room
All Implemented Interfaces:
AudioProcessorSupportCheck

public class Room extends Object implements AudioProcessorSupportCheck
A Room represents a media session with zero or more remote Participants. Media shared by any one RemoteParticipant is distributed equally to all other Participants.

A subset of Android devices provide an OpenSLES implementation. Although more efficient, the use of OpenSLES occasionally results in echo. As a result, the Video SDK disables OpenSLES by default unless explicitly enabled. To enable OpenSLES, execute the following before invoking Video.connect(...)

tvi.webrtc.voiceengine.WebRtcAudioManager.setBlacklistDeviceForOpenSLESUsage(false)

  • Method Details

    • getName

      @NonNull public String getName()
      Returns the name of the current room. This method will return the SID if the room was created without a name.
    • getSid

      @NonNull public String getSid()
      Returns the SID of the current room.
    • getMediaRegion

      @Nullable public String getMediaRegion()
      Returns the region where media is processed. This property is set in Group Rooms by the time the Room reaches Room.State.CONNECTED. This method returns null under the following conditions:

    • getState

      @NonNull public Room.State getState()
      Returns the current room state.
    • getDominantSpeaker

      @Nullable public RemoteParticipant getDominantSpeaker()
      Returns the dominant speaker of the Room.

      To enable this feature, add an invocation of ConnectOptions.Builder.enableDominantSpeaker with true when building your ConnectOptions. This method returns null when one of the following conditions are true:

      • The Room topology is P2P.
      • The dominant speaker feature was not enabled via ConnectOptions.Builder.enableDominantSpeaker.
      • There is currently no dominant speaker.
    • isRecording

      public boolean isRecording()
      Returns whether any media in the Room is being recorded.
    • getRemoteParticipants

      @NonNull public List<RemoteParticipant> getRemoteParticipants()
      Returns all currently connected participants.
      Returns:
      list of participants.
    • getLocalParticipant

      @Nullable public LocalParticipant getLocalParticipant()
      Returns the current local participant. If the room has not reached Room.State.CONNECTED then this method will return null.
    • getStats

      public void getStats(@NonNull StatsListener statsListener)
      Retrieve stats for all media tracks and notify StatsListener via calling thread. In case where room is in Room.State.DISCONNECTED state, reports won't be delivered.
      Parameters:
      statsListener - listener that receives stats reports for all media tracks.
    • disconnect

      public void disconnect()
      Disconnects from the room.
    • isAudioProcessorSupported

      public boolean isAudioProcessorSupported(String audioProcessorName)
      DO NOT USE, For internal use only, verifies if audio processor is supported.
      Specified by:
      isAudioProcessorSupported in interface AudioProcessorSupportCheck