Class ConnectOptions.Builder

  • Enclosing class:
    ConnectOptions

    public static class ConnectOptions.Builder
    extends java.lang.Object
    Build new ConnectOptions.

    All methods are optional.

    • Constructor Detail

      • Builder

        public Builder​(@NonNull
                       java.lang.String accessToken)
    • Method Detail

      • roomName

        @NonNull
        public ConnectOptions.Builder roomName​(@NonNull
                                               java.lang.String roomName)
        The name of the room.
      • enableIceGatheringOnAnyAddressPorts

        @NonNull
        public ConnectOptions.Builder enableIceGatheringOnAnyAddressPorts​(boolean enable)
        Enable gathering of ICE candidates on "any address" ports. When this flag is set, ports not bound to any specific network interface will be used, in addition to normal ports bound to the enumerated interfaces. This flag may need to be set to support certain network configurations (e.g. some VPN implementations) where ports are not bound to specific interfaces. Setting this flag means that additional candidates might need to be gathered and evaluated, which could lead to slower ICE connection times for regular networks.
      • enableInsights

        @NonNull
        public ConnectOptions.Builder enableInsights​(boolean enable)
        Enable sending stats data to Insights. Sending stats data to Insights is enabled by default.
      • enableAutomaticSubscription

        @NonNull
        public ConnectOptions.Builder enableAutomaticSubscription​(boolean enableAutomaticSubscription)
        Toggles automatic track subscription. If set to false, the LocalParticipant will receive notifications of track publish events, but will not automatically subscribe to them. If set to true, the LocalParticipant will automatically subscribe to tracks as they are published. If unset, the default is true. Note: This feature is only available for Group Rooms. Toggling the flag in a P2P room does not modify subscription behavior.
      • enableNetworkQuality

        @NonNull
        public ConnectOptions.Builder enableNetworkQuality​(boolean enableNetworkQuality)
        Enable or disable the Network Quality API.

        Set this to true to enable the Network Quality API when using Group Rooms. This option has no effect in Peer-to-Peer Rooms. The default value is false.

      • preferAudioCodecs

        @NonNull
        public ConnectOptions.Builder preferAudioCodecs​(@NonNull
                                                        java.util.List<AudioCodec> preferredAudioCodecs)
        Set preferred audio codecs. The list specifies which audio codecs would be preferred when negotiating audio between participants. The preferences are applied in the order found in the list starting with the most preferred audio codec to the least preferred audio codec. Audio codec preferences are not guaranteed to be satisfied because not all participants are guaranteed to support all audio codecs. OpusCodec is the default audio codec if no preferences are set.

        The following snippet demonstrates how to prefer a single audio codec.

        
             ConnectOptions connectOptions = new ConnectOptions.Builder(token)
                  .preferAudioCodecs(Collections.<AudioCodec>singletonList(new IsacCodec()))
                  .build();
         

        The following snippet demonstrates how to specify the exact order of codec preferences.

        
             ConnectOptions connectOptions = new ConnectOptions.Builder(token)
                  .preferAudioCodecs(Arrays.asList(new IsacCodec(),
                          new G722Codec(), new OpusCodec()))
                  .build();
         
      • preferVideoCodecs

        @NonNull
        public ConnectOptions.Builder preferVideoCodecs​(@NonNull
                                                        java.util.List<VideoCodec> preferredVideoCodecs)
        Set preferred video codecs. The list specifies which video codecs would be preferred when negotiating video between participants. The preferences are applied in the order found in the list starting with the most preferred video codec to the least preferred video codec. Video codec preferences are not guaranteed to be satisfied because not all participants are guaranteed to support all video codecs. Vp8Codec is the default video codec if no preferences are set.

        The following snippet demonstrates how to prefer a single video codec.

        
             ConnectOptions connectOptions = new ConnectOptions.Builder(token)
                  .preferVideoCodecs(Collections.<VideoCodec>singletonList(new H264Codec()))
                  .build();
         

        The following snippet demonstrates how to specify the exact order of codec preferences.

        
             ConnectOptions connectOptions = new ConnectOptions.Builder(token)
                  .preferVideoCodecs(Arrays.asList(new H264Codec(),
                          new Vp8Codec(), new Vp9Codec()))
                  .build();
         
      • region

        @NonNull
        public ConnectOptions.Builder region​(@NonNull
                                             java.lang.String region)
        The region of the signaling Server the Client will use. By default, the Client will connect 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. If you are connecting to a Group Room created with the "gll" Media Region (either Ad-Hoc or via the REST API), then the Room's Media Region will be selected based upon your Client's region. The default value is `gll`.
      • bandwidthProfile

        public ConnectOptions.Builder bandwidthProfile​(@Nullable
                                                       BandwidthProfileOptions bandwidthProfile)
        Configure how the available downlink bandwidth is shared among the RemoteVideoTracks you have subscribed to in a Group or Small-Group Room. This property has no effect in Peer-to-Peer Rooms.
        Parameters:
        bandwidthProfile - The profile to use.
        Returns: