Package com.twilio.video
Class Room
- java.lang.Object
-
- com.twilio.video.Room
-
- All Implemented Interfaces:
AudioProcessorSupportCheck
public class Room extends java.lang.Object implements AudioProcessorSupportCheck
A Room represents a media session with zero or more remote Participants. Media shared by any oneRemoteParticipant
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)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
Room.Listener
Listener definition of room related events.static class
Room.State
Represents the current state of aRoom
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
disconnect()
Disconnects from the room.RemoteParticipant
getDominantSpeaker()
Returns the dominant speaker of theRoom
.LocalParticipant
getLocalParticipant()
Returns the current local participant.java.lang.String
getMediaRegion()
Returns the region where media is processed.java.lang.String
getName()
Returns the name of the current room.java.util.List<RemoteParticipant>
getRemoteParticipants()
Returns all currently connected participants.java.lang.String
getSid()
Returns the SID of the current room.Room.State
getState()
Returns the current room state.void
getStats(StatsListener statsListener)
Retrieve stats for all media tracks and notifyStatsListener
via calling thread.boolean
isAudioProcessorSupported(java.lang.String audioProcessorName)
DO NOT USE, For internal use only, verifies if audio processor is supported.boolean
isRecording()
Returns whether any media in the Room is being recorded.
-
-
-
Method Detail
-
getName
@NonNull public java.lang.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 java.lang.String getSid()
Returns the SID of the current room.
-
getMediaRegion
@Nullable public java.lang.String getMediaRegion()
Returns the region where media is processed. This property is set in Group Rooms by the time theRoom
reachesRoom.State.CONNECTED
. This method returnsnull
under the following conditions:- The
Room
has not reached theRoom.State.CONNECTED
state. - The instance represents a peer-to-peer Room.
- The
-
getState
@NonNull public Room.State getState()
Returns the current room state.
-
getDominantSpeaker
@Nullable public RemoteParticipant getDominantSpeaker()
Returns the dominant speaker of theRoom
.To enable this feature, add an invocation of
ConnectOptions.Builder.enableDominantSpeaker
withtrue
when building yourConnectOptions
. This method returnsnull
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.
- The
-
isRecording
public boolean isRecording()
Returns whether any media in the Room is being recorded.
-
getRemoteParticipants
@NonNull public java.util.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 reachedRoom.State.CONNECTED
then this method will return null.
-
getStats
public void getStats(@NonNull StatsListener statsListener)
Retrieve stats for all media tracks and notifyStatsListener
via calling thread. In case where room is inRoom.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(java.lang.String audioProcessorName)
DO NOT USE, For internal use only, verifies if audio processor is supported.- Specified by:
isAudioProcessorSupported
in interfaceAudioProcessorSupportCheck
-
-