Changelog: Twilio Video iOS Latest
The Twilio Programmable Video SDKs use Semantic Versioning. Twilio supports version N-1 for 12 months after the first GA release of version N. We recommend you upgrade to the latest version as soon as possible to avoid any breaking changes. Version 4.x is the latest Video iOS version.
Support for 3.x will cease on December 4th, 2021. This branch will only receive fixes for critical issues until that date. Check this guide when planning your migration to 4.x.
Versions 2.x and below will End of Life on September 8th, 2021.
Support for 2.x ended on January 22nd, 2021.
Support for 1.x ended on April 26, 2019.
The Twilio Programmable Video SDKs use Semantic Versioning.
4.4.0 March 31, 2021
改善点
- 100 Participant Group Rooms Pilot Program: A Group Room created with max participants greater than 50 is structured to support a small number of presenters and a large number of viewers. It has the following behavioral differences compared to regular Group Rooms:
- The
RoomDelegate.participantDidConnect()
delegate method is invoked when aRemoteParticipant
connects to the Room and publishes at least one Track. - The
RoomDelegate.participantDidDisconnect()
delegate method is invoked when aRemoteParticipant
disconnects from the Room or unpublishes all of its Tracks. - If a
RemoteParticipant
unpublishes all of its tracks (resulting in theRoomDelegate.participantDidDisconnect()
delegate method being invoked) and later republishes a track, a newRemoteParticipant
object will be provided in the subsequentRoomDelegate.participantDidConnect()
delegate method invocation with the same Participant Sid as before. - The maximum number of published Tracks in a Room at the same time cannot exceed 16. Attempts to publish more Tracks will result in a publication failure with
ParticipantMaxTracksExceededError
unless one or more published Tracks is unpublished. - Contact your Twilio Account Executive to enroll in this pilot program.
- The
バグ修正
- Fixed a crash when network manager was still invoking
onNetworksChanged
callback while network monitor was being destroyed.
既知の問題
- 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
LocalAudioTrack
orLocalVideoTrack
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]
アーキテクチャ | Compressed Size | Uncompressed Size |
---|---|---|
Universal | 9.7 MB | 20.7 MB |
arm64 | 4.7 MB | 11.0 MB |
armv7 | 5.0 MB | 9.7 MB |
4.3.0 (February 3, 2021)
API の変更点
- Added new error code,
CameraSource.Error.cameraPermissionDenied
バグ修正
CameraSouce.startCapture()
now properly raises theCameraSource.Error.cameraPermissionDenied
error when attempting to start capturing the camera when a user has declined the camera permissions.
既知の問題
- 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
LocalAudioTrack
orLocalVideoTrack
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]
アーキテクチャ | Compressed Size | Uncompressed Size |
---|---|---|
Universal | 9.6 MB | 20.4 MB |
arm64 | 4.6 MB | 10.9 MB |
armv7 | 4.9 MB | 9.5 MB |
4.2.0 (January 27, 2021)
改善点
- The minimum iOS version supported at build time has been lowered from 11.0 to 9.0. Though the Twilio Video APIs are only available on iOS 11.0 and above, you can still build iOS 9.x and 10.x apps with the Video SDK.
API の変更点
- Calling
VideoTrack.addRenderer()
multiple times with the sameVideoRenderer
now throws a helpfulNSInvalidArgumentException
instead of firingNSAssert
.
既知の問題
- 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
LocalAudioTrack
orLocalVideoTrack
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]
Size Impact
アーキテクチャ | Compressed Size | Uncompressed Size |
---|---|---|
Universal | 9.6 MB | 20.4 MB |
arm64 | 4.6 MB | 10.9 MB |
armv7 | 4.9 MB | 9.5 MB |
4.1.0 (January 13, 2021)
改善点
- The minimum supported iOS version has been lowered from 12.0 to 11.0. On iOS 11.x simulators, video rendering with
VideoView
is not supported.
バグ修正
- Fixed a bug where the VideoView was not applying the native scale factor to the drawable size. This was a regression introduced in version 4.0.1.#159
既知の問題
- 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
LocalAudioTrack
orLocalVideoTrack
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]
Size Impact
アーキテクチャ | Compressed Size | Uncompressed Size |
---|---|---|
arm64 | 4.6 MB | 10.8 MB |
4.0.1 (December 18, 2020)
バグ修正
- Fixed a bug where the video renderer was setting the drawable size incorrectly. This was causing pixelated video when rendered on an external display using the Screen Mirroring.#123
- Fixed a bug where publishing multiple Tracks with the same name may result in a crash if network quality is enabled.
Distribution Changes
- Removed the Poco section from
Acknowledgements.md
since Poco is no longer a dependency
既知の問題
- VideoView may display pixelated video. #159
- 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]
Size Impact
アーキテクチャ | Compressed Size | Uncompressed Size |
---|---|---|
arm64 | 4.6 MB | 10.8 MB |
4.0.0 (December 4, 2020)
改善点
- 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 the 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.
- Twilio Video no longer depends on the Poco C++ Libraries.
既知の問題
- 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
アーキテクチャ | Compressed Size | Uncompressed Size |
---|---|---|
arm64 | 4.6 MB | 10.8 MB |
ヘルプが必要ですか?
誰しもが一度は考える「コーディングって難しい」。そんな時は、お問い合わせフォームから質問してください。 または、Stack Overflow でTwilioタグのついた情報から欲しいものを探してみましょう。