Skip to content

Twilio Video SDK iOS 4.0.0

Compare
Choose a tag to compare
@twilio-sdk-build twilio-sdk-build released this 04 Dec 21:11
· 40 commits to Releases since this release

This release consumes twilio-video-cpp-6.0.0.

  • The iOS SDK is based on WebRTC-83.
  • The iOS SDK is built with Xcode 12.0.
  • Twilio Video is now delivered as an .xcframework. The .xcframework package includes the .dSYM and .bcsymbolmap files to allow developers to symbolicate crash reports.
  • Twilio Video is now distributed as a Swift Package.
  • Enabled Metal rendering on the iOS simulator.
  • You can now share video of your app's screen to a Room using AppScreenSource. The Video SDK uses ReplayKit internally for in-app screen capture. AppScreenSource conforms to VideoSource and uses RPScreenRecorder to capture video of your app's screen. Here is a brief example:
if let source = AppScreenSource(), let track = LocalVideoTrack(source: source) {
    room.localParticipant?.publishVideoTrack(track)
    source.startCapture()
}
  • Discontinuous transmission (DTX) is enabled by default for the Opus codec. Disabling DTX will result in higher bitrate for silent audio while using the Opus codec. The TVIOpusCodec class now has a new initializer [TVIOpusCodec initWithDtxEnabled:] and a property dtxEnabled.
  • Added the TVIParticipantState enumeration.
  • Added the TVIParticipant.state property.
  • Added new delegate methods [TVIRoomDelegate room:participantIsReconnecting:] and [TVIRoomDelegte room:participantDidReconnect:] to TVIRoomDelegate. These callbacks will be raised when a TVIRemoteParticipant is attempting to reconnect to a room due to a signaling network interruption. NOTE: It can take up to 15 seconds for our signaling backend to detect that a RemoteParticipant's connection has been disrupted due to a network degradation or handoff.
  • isRecording property in TVIRoom now accurately reflects the current recording state of the TVIRoom. In the previous versions of the SDK, isRecording could return false positives. In TVIRoomDelegate the roomDidStartRecording and roomDidStopRecording callbacks will now be invoked when recording for at least a single track in the TVIRoom has begun and ended respectively.

API Updates

  • Added AppScreenSource to control video capture of your app's screen.
  • Removed the TVIRemoteParticipant.connected property in favor of TVIParticipant.state.

Removed following deprecated APIs

  • Removed the deprecated OpenGL Video Renderer APIs:
    • VideoView.RenderingType
    • [VideoView initWithFrame:delegate:renderingType:renderingType]
  • Removed the deprecated abortOnIceServersTimeout and iceServersTimeout properties from IceOptions and IceOptionsBuilder.

Distribution Changes

  • Twilio Video iOS SDK is no longer being shipped as a static library.

Known Issues

  • The TwilioVideo.xcframework does not currently support the simulator on Apple Silicon arm64 Macs.
  • Carthage is not currently a supported distribution mechanism for Twilio Video. Carthage does not currently work with .xcframeworks as documented here. Once Carthage supports binary .xcframeworks, Carthage distribution will be re-added.
  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • H.264 video might become corrupted after a network handoff. #147
  • 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]
  • Publishing multiple tracks with the same name may result in a crash if network quality is enabled. To avoid this, use unique names for each track in the TVIRoom.

Size Impact for 4.0.0

Architecture Compressed Size Uncompressed Size
arm64 4.6 MB 10.8 MB