メニュー

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?

Changelog: Twilio Video iOS

The Twilio Programmable Video SDKs use Semantic Versioning.

3.0.1 (November 5, 2019)

バグ修正

  • Fixed a possible deadlock that could occur when destroying a TVIRoom without first calling -[TVIRoom disconnect].
  • Fixed a crash which could occur when destroying a TVIRoom with dominant speaker enabled.

既知の問題

  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • Pre iPhone X iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

3.0.0 (October 4, 2019)

3.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.
  • Improved Swift APIs for a more idiomatic Swift development experience.
  • Support for UIScene and multi-window apps on iOS 13 and iPadOS 13.

バグ修正

  • Fixed a regression in 3.0.0-beta5 and 3.0.0-beta6 where the Participant's TLS handshake might be delayed by up to 250 milliseconds. [CSDK-3117]

既知の問題

  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • Pre iPhone X iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

3.0.0-beta6 (September 30, 2019)

This release completes the API changes needed for Twilio Video to be fully compatible with the iOS 13.0 and iPadOS 13.0 SDKs. This release also removes support for iOS 10. Twilio Video 2.x will continue to support iOS 9.0 and later.

API の変更点

  • The minimum supported iOS version has been raised to 11.0.
  • TVICameraSource can monitor UIWindowScene for orientation and state changes in iOS 13.0+.
  • Removed manual orientation control APIs from TVICameraSource and introduced the TVICameraSourceOrientationTracker protocol along with the TVIUserInterfaceTracker class.
  • The following example demonstrates how to track a UIWindowScene:
// Track the orientation of the key window's scene.
let options = CameraSourceOptions { (builder) in
    if let keyScene = UIApplication.shared.keyWindow?.windowScene {
        builder.orientationTracker = UserInterfaceTracker(scene: keyScene)
    }
}
let camera  = CameraSource(options: options, delegate: self)
// Forward UIWindowScene events
func windowScene(_ windowScene: UIWindowScene,
                 didUpdate previousCoordinateSpace: UICoordinateSpace,
                 interfaceOrientation previousInterfaceOrientation: UIInterfaceOrientation,
                 traitCollection previousTraitCollection: UITraitCollection) {
    UserInterfaceTracker.sceneInterfaceOrientationDidChange(windowScene)
}

既知の問題

  • The Participant's TLS handshake might be delayed by up to 250 milliseconds. [CSDK-3117]
  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • Pre iPhone X iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

3.0.0-beta5 (September 25, 2019)

API の変更点

  • Added TVILocalParticipant.signalingRegion. You can use this property to determine where your Participant connected to a Room, especially when using the default value of "gll" for TVIConnectOptions.region.
  • Added TVIRoom.mediaRegion. You can use this property to determine where media is being processed in a Group Room.
  • Updated the TVIConnectOptionsBuilder.region property to no longer throw an exception when an empty string is provided and instead default to gll.
  • When a Participant connects to a Room, the WebSocket handshake is required to complete in 15 seconds or less, otherwise TVIErrorSignalingConnectionError is raised.
  • TVIEncodingParameters now expresses maximum bitrates in Kilobits per second (Kbps) instead of bits per second (bps).
// Before
let params = EncodingParameters(audioBitrate: UInt(64000),
                                videoBitrate: UInt(800000)
// After
let params = EncodingParameters(audioBitrate: UInt(64),
                                videoBitrate: UInt(800)

改善点

  • The iOS SDK is built with Xcode 11.0
  • TVIVideoView registers for UIScene lifecycle notifications when it is contained within a UIWindowScene on iOS 13.0+. Rendering is permitted in the following states:
    • UISceneActivationStateForegroundActive at 60 Hz
    • UISceneActivationStateForegroundInactive at 30 Hz
  • TVIVideoView suspends its internal CADisplayLink timer when it is removed from a UIWindow.
  • Increased the reliability of TVILocalDataTrack 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. [CSDK-3037]

バグ修正

  • Fixed a bug where TVICameraSource might produce distorted frames after being interrupted with AVCaptureSessionInterruptionReasonVideoDeviceInUseByAnotherClient on iOS 13.0. #53
  • Making the SDK more aggressive at establishing a connection by trying to connect multiple sockets to different endpoints in parallel. [CSDK-2942]
  • TVILocalDataTrack should no longer end up in an inconsistent state after attempting to send a message larger than 16 KB. [CSDK-3081]

既知の問題

  • The Participant's TLS handshake might be delayed by up to 250 milliseconds. [CSDK-3117]
  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • Pre iPhone X iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

3.0.0-beta4 (September 6, 2019)

API の変更点

  • Introduced TVIErrorSignalingDnsResolutionError, which is now raised instead of TVIErrorSignalingConnectionError in the following scenarios:
    • The device has misconfigured DNS Server(s) on its active network interface.
    • The region provided in TVIConnectOptions 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 TVIConnectOptions.iceOptions, and overridden Servers
    • Connecting with default ICE servers (us1 only)
    • [CSDK-2902]

バグ修正

  • Fixed a bug where Participants remain connected to a Room even after terminal media failures. [CSDK-3023]
  • Fixed a crash when Network Quality or Dominant Speaker is enabled, connectivity to the Room is lost, and the Room is deleted from within TVIRoomDelegate.roomDidDisconnect(). [CSDK-2950]
  • Fixed a bug where resources might be leaked when destroying a Room. [CSDK-2822]
  • Fixed a bug where network monitoring would continue on closed connections in a Peer-to-Peer Room. [CSDK-2947]
  • Fixed a crash on the iOS 13 simulator when rendering received H.264 video, or any other video in the TVIPixelFormatYUV420BiPlanarFullRange or TVIPixelFormatYUV420BiPlanarVideoRange formats. [ISDK-2631]

既知の問題

  • In rare cases, the SDK might timeout during a TCP handshake and should be more aggressive at establishing a connection. [CSDK-2942]
  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • Pre iPhone X iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

3.0.0-beta3 (August 5, 2019)

改善点

  • The Participant's signaling connection now conforms to Twilio's TLS & Cipher Suite Security Policy. Support for TLS versions older than 1.2 has been removed. [CSDK-3020]
  • Adjusted the buffer sizes used for signaling messages to reduce network fragmentation. [CSDK-2920]
  • Setting TVILogModuleSignaling enables logging of low level connection events at TVILogLevelTrace. [ISDK-2446]

バグ修正

  • WebSocket errors are handled immediately, rather than waiting for a timeout to occur. [CSDK-3025]
  • Handle rare exceptions when constructing a WebSocket. [CSDK-2755]

既知の問題

  • Future 3.0.0-beta releases will reduce the number of round-trips required to connect to a Room. [CSDK-2902]
  • In rare cases, the SDK might timeout during a TCP handshake and should be more aggressive at establishing a connection. [CSDK-2942]
  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • Pre iPhone X iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

3.0.0-beta2 (July 16, 2019)

API の変更点

  • Renamed + [TwilioVideoSDK version] to + [TwilioVideoSDK sdkVersion] to alleviate the clash with NSObject's version method.
  • Removed the type argument label for the Swift definition of [TVICameraSource captureDeviceForPosition:type]. In Swift, the function is now declared as class func captureDevice(position: AVCaptureDevice.Position, deviceType: AVCaptureDevice.DeviceType) -> AVCaptureDevice?.
  • Updated the Swift audio sample rate constant names to remove the redundant Audio. For instance AudioFormat.AudioSampleRate8000 is now AudioFormat.SampleRate8000.
  • Updated the Swift audio format channels constant names to remove the redundant Audio. For instance AudioFormat.AudioChannelsMono is now AudioFormat.ChannelsMono.
  • Refactored the TVILocalParticipantDelegate and TVIRemoteParticipantDelegate methods to follow the did naming convention for consistency with the other delegate methods. See the Migrating from 2.x to 3.x guide for more information.

バグ修正

  • The SDK will consistently recover the Participant's connection after multiple failed network handovers, or multiple failures on a single network. [CSDK-2957, CSDK-3007]
  • Failures in the Participant's connection are always detected within 15 seconds. [CSDK-2927]
  • Improved DNS retry logic and error handling. [CSDK-2801]
  • Disabled server side deflate compression due to occasional errors when reading messages. [CSDK-3004]
  • Security improvements. [CSDK-2986, CSDK-3005]

既知の問題

  • Future 3.0.0-beta releases will reduce the number of round-trips required to connect to a Room. [CSDK-2902]
  • Setting TVILogModuleSignaling does not produce any logging. [ISDK-2446]
  • In rare cases, the SDK might timeout during a TCP handshake and should be more aggressive at establishing a connection. [CSDK-2942]
  • If a WebSocket error occurs, it might not be handled for up to 15 seconds. [CSDK-3025]
  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • Pre iPhone X iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

3.0.0-beta1 (June 6, 2019)

The 3.0 release removes support for iOS 9.0, and raises the minimum supported iOS version to 10.0. Twilio Video 2.x releases will continue to support iOS 9.0 and later.

改善点

  • The SDK uses a new WebSocket based signaling transport, and communicates with globally available signaling Servers over IPv4 and IPv6 networks.
  • Added the TVIConnectOptions.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.
let connectOptions = ConnectOptions(token: accessToken) { (builder) in
    builder.region = "us1"
    builder.roomName = "my-room"
}
self.room = TwilioVideoSDK.connect(with: connectOptions, delegate: self)
  • Participants are considered to be reconnecting within 15 seconds, and are disconnected from a Room after 45 seconds of lost connectivity. #99

API の変更点

  • Twilio Video has been updated for better Swift interoperability. See the Migrating from 2.x to 3.x guide for more information.
    • The TwilioVideo Obj-C class has been renamed to TwilioVideoSDK to reduce possible namespace issues in Swift due to the Module containing a Type with the same name.
    • The TVI prefix has been removed from all Twilio Video types
    • Many of the delegate function declarations have been revamped for better clarity of their intent
    • Some of the class method declarations have been revamped for better clarity of their intent
  • The TVIAudioSessionActivated() and TVIAudioSessionDeactivated() methods have been removed as the Video SDK no longer needs to terminate the signaling connection when an app is backgrounded.
  • Removed the deprecated TVIVideoCapturer APIs:
    • TVIVideoCapturer
    • TVICameraCapturer
    • TVIScreenCapturer
    • TVIVideoConstraints
    • TVILocalVideoTrack.capturer
    • TVILocalVideoTrack.constraints
    • TVILocalVideoTrack.trackWithCapturer:
    • TVILocalVideoTrack.trackWithCapturer:enabled:constraints:name:
  • Removed TVIAudioOptions that are no longer supported by WebRTC:
    • TVIAudioOptions.levelControl
    • TVIAudioOptions.levelControlInitialPeakLevelDBFS
    • TVIAudioOptionsBuilder.levelControl
    • TVIAudioOptionsBuilder.levelControlInitialPeakLevelDBFS
  • Removed the TVIVideoRenderer.optionalPixelFormats property due to lack of use. A TVIVideoRenderer is expected to support any valid TVIPixelFormat or drop incoming frames if it can't process them.

バグ修正

  • Participants can send and receive messages that are larger than 16 KB.
  • Renamed kDefaultAVAudioSessionConfigurationBlock to kTVIDefaultAVAudioSessionConfigurationBlock so that TwilioVoice.framework and TwilioVideo.framework may be used in the same application.
  • Fixed a crash that could occur when using a TVIVideoSource, and the source's buffer pool becomes empty.

既知の問題

  • Future 3.0.0-beta releases will reduce the number of round-trips required to connect to a Room. [CSDK-2902]
  • If heartbeats are not received, the signaling connection may take up to 45 seconds to be disconnected instead of 15 seconds. [CSDK-2927]
  • The SDK may crash if Network Quality or Dominant Speaker is enabled, and connectivity to the Room is lost, and the Room is deleted from within [TVORoomDelegate didDisconnectWithError:]. [CSDK-2950]
  • Setting TVILogModuleSignaling does not produce any logging. [ISDK-2446]
  • In rare cases, the SDK might timeout during a TCP handshake and should be more aggressive at establishing a connection. [CSDK-2942]
  • The WebSocket might close with a partial_deflate_block (code 5) error. [CSDK-2949]
  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • Pre iPhone X iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]
Rate this page:

ヘルプが必要ですか?

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