メニュー

Expand
Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

5.0 Changelog: Twilio Video Android

The Twilio Programmable Video SDKs use Semantic Versioning.

5.0.0 (October 23rd, 2019)

5.0 is now generally available. Thank you for all the feedback from our beta adopters. This release includes Global low latency (GLL) signaling with IPv4 and IPv6 support.

既知の問題

  • Unpublishing and republishing a LocalAudioTrack or LocalVideoTrack might not be seen by Participants. As a result, tracks published after a Room.State.RECONNECTED event might not be subscribed to by a RemoteParticipant.

Size Report

ABI APK Size Impact
universal 22.9MB
armeabi-v7a 5MB
arm64-v8a 5.9MB
x86 6.3MB
x86_64 6.4MB

5.0.0-beta4 (October 2nd, 2019)

Network Quality API

  • Implemented the Network Quality functionality for Group Rooms:
  • The Network Quality feature is disabled by default, to enable it set the ConnectOptions.Builder.enableNetworkQuality property to true when connecting to a Group Room.
    • To determine the current network quality level for your Local Participant, call LocalParticipant.getNetworkQualityLevel(). Note, this will return NETWORK_QUALITY_LEVEL_UNKNOWN if:
      • The ConnectOptions.networkQualityEnabled property was set to false
      • Using a Peer-to-Peer room
      • The network quality level has not yet been computed
    • Network Quality Level for Remote Participants will be available in a future release
    • Implementing the onNetworkQualityLevelChanged method on your LocalParticipant.Listener will allow you to receive callbacks when the network quality level changes
// Enable network quality
ConnectOptions connectOptions =
                new ConnectOptions.Builder(token)
                        .roomName(roomName)
                        .enableNetworkQuality(true)
                        .build();

// Override onNetworkLevelChanged to observe network quality level changes
LocalParticipant.Listener localParticipantListener = new LocalParticipant.Listener() {
    ...

    @Override
    public void onNetworkQualityLevelChanged(
        @NonNull LocalParticipant localParticipant,
        @NonNull NetworkQualityLevel networkQualityLevel) {}
}

// Connect to room and register listener
Room room = Video.connect(context, connectOptions, roomListener);
LocalParticipant localParticipant = room.getLocalParticipant();
localParticipant.setListener(localParticipantListener);

// Get current network quality
localParticipant.getNetworkQualityLevel();

API の変更点

  • When a Participant connects to a Room, the WebSocket handshake is required to complete in 15 seconds or less, otherwise TwilioException.SIGNALING_CONNECTION_ERROR_EXCEPTION is raised.
  • Added LocalParticipant.signalingRegion. You can use this property to determine where your Participant connected to a Room, especially when using the default value of "gll" for ConnectOptions.Builder.region.
  • Added Room.mediaRegion. You can use this property to determine where media is being processed in a Group Room.
  • EncodingParameters now expresses maximum bitrates in Kilobits per second (Kbps) instead of bits per second (bps).
// Before
EncodingParameters encodingParameters = new EncodingParameters(64000, 800000);
// After
EncodingParameters encodingParameters = new EncodingParameters(64, 800);

改善点

  • Increased the reliability of LocalDataTrack by monitoring its send buffer. Sending too many messages, or sending single messages larger than 16 KB no longer causes the underlying channel(s) to close. These requests are ignored instead.

バグ修正

  • LocalDataTrack should no longer end up in an inconsistent state after attempting to send a message larger than 16 KB.

既知の問題

  • Unpublishing and republishing a LocalAudioTrack or LocalVideoTrack might not be seen by Participants. As a result, tracks published after a Room.State.RECONNECTED event might not be subscribed to by a RemoteParticipant.

Size Report

ABI APK Size Impact
universal 22.9MB
armeabi-v7a 5MB
arm64-v8a 5.9MB
x86 6.3MB
x86_64 6.4MB

5.0.0-beta3 (September 17th, 2019)

Dominant Speaker Detection API

The Dominant Speaker Detection API sends events to your application every time the dominant speaker changes. You can use those events to improve the end user's experience by, for example, highlighting which participant is currently talking.

The Dominant Speaker Detection API is only available for Group Rooms. To enable dominant speaker detection, set the ConnectOptions.dominantSpeakerEnabled property to true. Use Room.getDominantSpeaker() to determine the current dominant speaker. Implement Room.Listener.onDominantSpeakerChanged() method to receive callbacks when the dominant speaker changes.

For more information, refer to the API docs and to the dominant speaker tutorial

 ConnectOptions connectOptions =
                new ConnectOptions.Builder(token)
                        .roomName(roomName)
                        .enableDominantSpeaker(true)
                        .build();
Room room = Video.connect(context, connectOptions, roomListener);

@Override
void onDominantSpeakerChanged(
                @NonNull Room room, @Nullable RemoteParticipant remoteParticipant) {
                // Handle dominant speaker change
        }

API の変更点

  • Introduced TwilioException.SIGNALING_DNS_RESOLUTION_ERROR_EXCEPTION, which is now raised instead of TwilioException.SIGNALING_CONNECTION_ERROR_EXCEPTION in the following scenarios:
  • The device has misconfigured DNS Server(s) on its active network interface.
  • The region provided in ConnectOptions was invalid.
  • The device lost its Internet connection before the query could complete.

改善点

  • Reduced connection times by removing a round trip when:
  • Reconnecting after a signaling connection failure
  • Connecting with ConnectOptions.iceOptions, and overridden Servers
  • Connecting with default ICE servers (us1 only)

バグ修正

  • Fixed crash that occurred when rapidly connecting and disconnecting from a room.
  • Fixed updating CameraCapturer.State when error occurs.
  • Setting ConnectOptions.region to an empty or null value results in the default region being used.
  • Fixed a bug where native memory was leaked after disconnecting from a Room.
  • Fixed a bug where network monitoring would continue on closed connections in a Peer-to-Peer Room.

既知の問題

  • In rare cases, the SDK might timeout during a TCP handshake and should be more aggressive at establishing a connection.
  • Unpublishing and republishing a LocalAudioTrack or LocalVideoTrack might not be seen by Participants. As a result, tracks published after a Room.State.RECONNECTED event might not be subscribed to by a RemoteParticipant. Size Report
ABI APK Size Impact
universal 22.8MB
armeabi-v7a 5MB
arm64-v8a 5.9MB
x86 6.2MB
x86_64 6.3MB

5.0.0-beta2 (August 7th, 2019)

改善点

  • The Participant's signaling connection now conforms to Twilio's TLS & Cipher Suite Policy. Support for TLS versions older than 1.2 has been removed.
  • Adjusted the buffer sizes used for signaling messages to reduce network fragmentation.
  • Setting video::LogModule::kSignaling enables logging of low-level connection events.

バグ修正

  • WebSocket errors are handled immediately, rather than waiting for a timeout to occur.
  • Handle rare exceptions when constructing a WebSocket.

既知の問題

  • Future 5.0.0-beta releases will reduce the number of round-trips required to connect to a Room.
  • In rare cases, the SDK might timeout during a TCP handshake and should be more aggressive at establishing a connection.
  • Unpublishing and republishing a LocalAudioTrack or LocalVideoTrack might not be seen by Participants. As a result, tracks published after a Room.State.RECONNECTED event might not be subscribed to by a RemoteParticipant.

5.0.0-beta1 (July 16th, 2019)

改善点

  • The SDK uses a new WebSocket based signaling transport, and communicates with globally available signaling Servers over IPv4 and IPv6 networks.
  • Added a ConnectOptions.region property. 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.
  • Participants are considered to be reconnecting within 15 seconds, and are disconnected from a Room after 45 seconds of lost connectivity. #80
  • Added and updated public API nullability annotations.

バグ修正

  • Participants can send messages that are larger than 16 KB.
  • The “roomimpl.worker” thread is no longer needed.

既知の問題

  • Setting LogModule.SIGNALING does not produce any logging.
  • Future 5.0.0-beta releases will reduce the number of round-trips required to connect to a Room.
  • In rare cases, the SDK might timeout during a TCP handshake and should be more aggressive at establishing a connection.
  • Unpublishing and republishing a LocalAudioTrack or LocalVideoTrack might not be seen by Participants. As a result, tracks published after a Room.State.RECONNECTED event might not be subscribed to by a RemoteParticipant.

Size Report

ABI APK Size Impact
universal 22.7MB
armeabi-v7a 5MB
arm64-v8a 5.9MB
x86 6.2MB
x86_64 6.3MB
Rate this page:

ヘルプが必要ですか?

誰しもが一度は考える「コーディングって難しい」。そんな時は、お問い合わせフォームから質問してください。 または、Stack Overflow でTwilioタグのついた情報から欲しいものを探してみましょう。