Twilio Video SDK iOS 4.0.0
twilio-sdk-build
released this
04 Dec 21:11
·
41 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
usingAppScreenSource
. The Video SDK uses ReplayKit internally for in-app screen capture.AppScreenSource
conforms toVideoSource
and usesRPScreenRecorder
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 propertydtxEnabled
. - Added the
TVIParticipantState
enumeration. - Added the
TVIParticipant.state
property. - Added new delegate methods
[TVIRoomDelegate room:participantIsReconnecting:]
and[TVIRoomDelegte room:participantDidReconnect:]
toTVIRoomDelegate
. These callbacks will be raised when aTVIRemoteParticipant
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 inTVIRoom
now accurately reflects the current recording state of theTVIRoom
. In the previous versions of the SDK,isRecording
could return false positives. InTVIRoomDelegate
theroomDidStartRecording
androomDidStopRecording
callbacks will now be invoked when recording for at least a single track in theTVIRoom
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 ofTVIParticipant.state
.
Removed following deprecated APIs
- Removed the deprecated OpenGL Video Renderer APIs:
VideoView.RenderingType
[VideoView initWithFrame:delegate:renderingType:renderingType]
- Removed the deprecated
abortOnIceServersTimeout
andiceServersTimeout
properties fromIceOptions
andIceOptionsBuilder
.
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
orTVILocalVideoTrack
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 |