NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #3032 most downloaded on pub.dev
The Official Low-level Client for Stream Video, a service for building video calls, audio rooms, and live-streaming applications.
Last release 22 days ago
16 Sep 2026
Ships on a steady schedule
a new release about every 3 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
72 releases · first in 2023
chore(repo): video smoke test skill by @Brazol in #1316
Full Changelog: v1.5.0...v1.6.0
One column per quarter.
EncryptionManager with Call.setE2EEManager prior to joining, or by specifying encryption at call creation using StreamEncryptionSettings. Supported on Android, iOS, and macOS. For implementation details and examples, refer to the encryption guide.CallPreferences.encryptionKeyResolver, which supplies the key for calls your app does not join itself, such as those answered from a ringing notification. See the documentation for details.ActionCallIncomingFailed and IncomingCallFailureReason to notify when the system blocks showing an incoming call (e.g. due to Do Not Disturb or block list). Listen via onRingingEvent<ActionCallIncomingFailed>.AndroidPushConfiguration(telecom: TelecomPushConfiguration(...)).dart_webrtc to 1.8.2, required for WebAssembly builds.consumeIncomingCall could create multiple Call instances for the same ringing flow, causing state conflicts and UI issues.chore(repo): add update_goldens workflow by @renefloor in #1304
Full Changelog: v1.4.3...v1.5.0
CallState.isWebAudioPlaybackBlocked, which reports whether the browser's autoplay policy is blocking playback of remote audio. Observe it through call.state to show a "tap to enable sound" affordance the moment playback is blocked. Always false on every other platform.RtcMediaDeviceNotifier.resumeWebAudioPlayback(), which retries playback of the blocked remote audio elements. Call it from within a user gesture (e.g. a button tap) so the browser allows playback. A no-op on every other platform. Unrelated to the existing resumeAudioPlayout(), which unmutes playout paused via pauseAudioPlayout().SpeakingWhileMutedRecognition) now works on iOS, macOS and web (previously Android-only). On iOS/macOS it requires muting with stopTrackOnMute: false. Check the cookbook for details and per-platform requirements.stopTrackOnMute parameter to Call.setMicrophoneEnabled. The default (true, unchanged) stops and releases the audio track on mute; false keeps the track alive and sends silence instead. See the documentation for the trade-offs.RtcRemoteTrack.setSinkId is now asynchronous (Future<RtcRemoteTrack> instead of RtcRemoteTrack) and throws when the browser cannot route the track to the requested device.RtcRemoteTrack.stop takes an optional disposeWebAudioPlayer flag (defaults to true, no effect on native). Pass false when the track may resume on the same transceiver, to keep its <audio> element and the selected output device.autoplay attribute and failing with no indication.Call.setAudioOutputDevice reporting success when the browser rejected the device or did not support output selection at all.Call.setAudioOutputDevice leaving playback split across two output devices when one remote track rejected the switch. The switch is now attempted for every remote audio track, the tracks that accept it are updated, and the selection is only rejected when every track rejected the device.RtcRemoteTrack.copyWith dropping the transceiver, so a remote track lost it as soon as a copy was made — which on web happens every time an audio output device is applied to the track.Call.setAudioBitrateProfile unmuting already-muted participants. Muted tracks now stay muted and update constraints on next unmute.Call.suspendAudio() resume unintentionally unmuting users who muted while audio was suspended. Resume now preserves mute state.ci(repo): add automated pub.dev publishing pipeline by @xsahil03x in #1294
Full Changelog: v1.4.2...v1.4.3
(trackType, publishOptionId) before creating the sender, so a concurrent one reuses that sender instead of adding a second, and a repeated enable joins the media acquisition already in flight rather than opening the camera twice.mid after a renegotiation or publish retry. It's now resolved from the current peer-connection state so the SFU can reliably match the track to its media.FormatException when sending requests if the application name (or other device/app info) contains non-ASCII characters. Values included in the X-Stream-Client header are now sanitized to valid header characters.feat(samples): Update chat sdk in dogfooding by @renefloor in #1253
Full Changelog: v1.4.1...v1.4.2
Call.state.audioOutputDevice now stays in sync with the active native audio route when the output changes outside of Call.setAudioOutputDevice (e.g. via the native route-selection UI, or when the system re-routes on device connect/disconnect).ClientEventReporter).failed peer-connection state now enters the reconnect loop with the fast strategy instead of forcing an immediate rejoin.disconnected state is no longer treated as unhealthy, only a permanently closed peer connection forces an immediate rejoin.chore(deps): bump the all-actions group across 1 directory with 3 updates by @dependabot [bot] in #1259
Full Changelog: v1.4.0...v1.4.1
X-Stream-Client header and SFU ClientDetails being sent with stale or incomplete device/app info.TransparentActivity is recreated with a null intent action (e.g. after process death or restore from recents) (#1256).fix(llc): deprecate precacheGenericSdps instead of removing it by @Brazol in #1242
Full Changelog: v1.3.3...v1.4.0
Each call now owns an isolated native PeerConnectionFactory. This fixes cross-call audio interference, sibling-call microphone capture loss, and noise cancellation failing to engage during lobby preview.
Call.ensureNativeFactory(), which returns the per-call native NativePeerConnectionFactory. Use it to pin pre-join media (e.g. lobby-preview tracks created via RtcLocalTrack.camera(nativeFactory: …)) to the same factory the call uses after joining.audioConfigurationPolicy override on DefaultCallPreferences. It falls back to StreamVideoOptions.audioConfigurationPolicy when null.degradationPreference for video quality, falling back to maintain-framerate when it is unspecified.new state).dropIfAloneInRingingFlow (the remote party hung up first). Call.end() and Call.leave() now share a single _disconnect cleanup path.Call._clear multi-call aware. The audio processor is owned by StreamVideo rather than by an individual Call, so disabling it during one call's teardown silently dropped noise cancellation on any other still-active call. _clear now stops the global processor only when no other active call is configured to use NoiseCancellationSettingsMode.autoOn.double.AudioDeviceModule. Previously, all calls shared the global ambient factory. This per-call isolation is what enables clean multi-call audio. Integrators building tracks directly should pass nativeFactory: await call.ensureNativeFactory() to the RtcLocalTrack.* constructors.feat(llc): high scale livestream publisher hint added by @Brazol in #1219
Full Changelog: v1.3.2...v1.3.3
TranscriptionSettingsResponse.fromJson crashing with a null check error when the backend returns an empty string for the language field.isPinned: true on a ParticipantJoined event, the participant is now automatically pinned.hintHighScaleLivestreamPublisher parameter to Call.join() to allow marking the participant as publishing to a large audience.chore(llc): openAPI models regen by @Brazol in #1209
Full Changelog: v1.3.1...v1.3.2
consumeAndAcceptActiveCall auto-accepting incoming calls on Android when the user opens the app without pressing the Accept button on the notification. The method now only consumes calls that the user explicitly accepted.StreamHlsSettings.qualityTracks (List<String>) is deprecated — use StreamHlsSettings.qualities (List<StreamVideoQuality>) instead.fix(llc): fixed ringing race conditions by @Brazol in #1185
Full Changelog: v1.3.0...v1.3.1
Call.join when another connect is already in progress, with proper timeout handling.consumeAndAcceptActiveCall to ensure the coordinator WS is connected before consuming incoming calls during cold start.feat(llc): hifi stereo playout (Android and iOS) by @Brazol in #1173
Full Changelog: v1.2.4...v1.3.0
iceRestart event — the client now correctly performs ICE restart and renegotiation when instructed by the SFU, improving fast reconnect reliability.dropIfAloneInRingingFlow is set to true in CallPreferences the call will now end when the last participant leaves the call.VideoModerationConfig in CallPreferences. Check cookbook for more details.SfuAudioBitrateProfile to select an audio quality profile before joining a call:
SfuAudioBitrateProfile.voiceStandard – Standard voice (64 kbps, default)SfuAudioBitrateProfile.voiceHighQuality – High-quality voice (128 kbps)SfuAudioBitrateProfile.musicHighQuality – HiFi music mode (128 kbps, audio processing disabled)audioConfigurationPolicy in StreamVideoOptions. Includes predefined policies:
AudioConfigurationPolicy.broadcaster() – Mono playout with voice processing enabled (default)AudioConfigurationPolicy.viewer() – Stereo playout with voice processing disabled, ideal for passive listenersAudioConfigurationPolicy.hiFi() – Stereo capture and playout with voice processing disabled, ideal for hosts streaming high-fidelity audioAudioConfigurationPolicy.custom() – Full control over platform-specific audio settings with optional basePolicy fallbackRtcMediaDeviceNotifier.reinitializeAudioConfiguration() to switch audio configuration policy at runtime (must be called before starting a call).See the documentation for details.
androidAudioConfiguration in StreamVideoOptions. Use audioConfigurationPolicy instead.fix(llc): fix call connection issues on web by @Brazol in #1171
Full Changelog: v1.2.3...v1.2.4
chore(repo): fixes required for pana by @Brazol in #1152
Full Changelog: v1.2.2...v1.2.3
call.leave() performancereconnectReason to reconnect details for sfu logs.Sync version with stream_video_flutter 1.2.2
stream_video_flutter 1.2.2Sync version with stream_video_flutter 1.2.1
stream_video_flutter 1.2.1Sync version with stream_video_flutter 1.2.0
stream_video_flutter 1.2.0Improved call.join() performance - reduced join time by optimizing WebRTC setup and deferring non-critical operations.
call.join() performance - reduced join time by optimizing WebRTC setup and deferring non-critical operations.Fixed incoming call timeout handling.
🐞 Fixed
Fixed incoming call timeout handling.
streamVideo.observeCoreRingingEventsForBackground() instead of streamVideo.observeCallDeclinedRingingEvent() in firebaseMessagingBackgroundHandler to support all necessary events.Improved SFU stats implementation.
Added support for changing the camera target resolution during an ongoing call using the call.setCameraTargetResolution() method.
call.setCameraTargetResolution() method.In this release, we removed the dependency on flutter_callkit_incoming, which introduces breaking changes in the CallKit and ringing functionality:
In this release, we removed the dependency on flutter_callkit_incoming, which introduces breaking changes in the CallKit and ringing functionality:
onCallKitEvent is now onRingingEventobserveCoreCallKitEvents is now observeCoreRingingEventsobserveCallAcceptCallKitEvent is now observeCallAcceptRingingEventobserveCallDeclinedCallKitEvent is now observeCallDeclinedRingingEventobserveCallEndedCallKitEvent is now observeCallEndedRingingEventCallKitEvent type is now RingingEventStreamVideo.muteVideoWhenInBackground → StreamVideo.options.muteVideoWhenInBackgroundStreamVideo.muteAudioWhenInBackground → StreamVideo.options.muteAudioWhenInBackgroundStreamCallType() constructor → StreamCallType.defaultType()Call.setParticipantPinned() → Call.setParticipantPinnedLocally() (local-only pin)startRtmpBroadcasts parameter from Call.goLive()localParticipant parameter from AddReactionOption constructorandroidAudioAttributesUsageType and androidAudioAttributesContentType parameters in RtcMediaDeviceNotifier.handleCallInterruptionCallbacks()Call.ring() to ring specific members of an existing call. Example: call.ring(userIds: ['<userId>'], video: true). Sends a ringing/VoIP push to the users’ devices. Users must already be members - use call.addMembers() first if needed.RtcMediaDeviceNotifier.pauseAudioPlayout() / RtcMediaDeviceNotifier.resumeAudioPlayout() to mute and restore remote playback with platform-specific handling for iOS/macOS and Android.RtcMediaDeviceNotifier.handleCallInterruptionCallbacks().RtcMediaDeviceNotifier.regainAndroidAudioFocus() to request audio focus when it was lost without automatic regain.[Web] Fixed setting input audio/video device passed by CallConnectOptions as well as switching those devices during the call.
🐞 Fixed
CallConnectOptions as well as switching those devices during the call.callMembers collection wasn't reflecting the actual members list after starting the call session.✅ Added
checkIfAudioOutputChangeSupported() to the Call class to check whether the browser supports changing the audio output device.The byParticipantSource participant sorting now accepts a list of sources. The default sorting for speaker and livestream presets now include other in
🔄 Changed
byParticipantSource participant sorting now accepts a list of sources. The default sorting for speaker and livestream presets now include other ingress sources.> Important: This release includes breaking changes for Android development.
🚧 Build breaking changes
Important: This release includes breaking changes for Android development.
Android Requirements:
- Minimum compileSDK 36
- Android Gradle Plugin >=8.12.1
- Gradle wrapper >=8.13
- Kotlin 2.2.0
🚧 Breaking changes
Call.stats payload structure changed
({ CallStats publisherStats, CallStats subscriberStats })({ PeerConnectionStatsBundle publisherStatsBundle, PeerConnectionStatsBundle subscriberStatsBundle })Stats-related fields removed from CallState
publisherStats, subscriberStats, latencyHistory
call.stats streamcall.statsReporter?.currentMetricsDependency updates
✅ Added
call.statsReporter property provides access to currentMetricscall.statsReporter?.currentMetrics🔄 Changed
Call.stats record field names and types updated as noted in breaking changes section🐞 Fixed
Extended CallParticipantState with participantSource. This indicates the participant's source channel (e.g., WebRTC, RTMP, WHIP) and can be used in fi
✅ Added
CallParticipantState with participantSource. This indicates the participant's source channel (e.g., WebRTC, RTMP, WHIP) and can be used in filtering and sorting criteria.SfuClientCapability.subscriberVideoPause (on by default). Control via Call.enableClientCapabilities() / Call.disableClientCapabilities().SfuInboundStateNotificationEvent notifies when inbound tracks are paused or resumed.CallParticipantState.pausedTracks and CallParticipantState.isTrackPaused() let you check which tracks are currently paused.call.kickUser(). Requires the kick-user permission.🐞 Fixed
Handled SFU stats reporting failures gracefully
🐞 Fixed
✅ Added
StreamVideo instance by providing androidAudioConfiguration to StreamVideoOptions.Deprecated callRejoinTimeout in RetryConfig, instead added networkAvailabilityTimeout to CallPreferences to control how long the SDK waits for network…
✅ Added
reconnectTimeout option in CallPreferences, allowing you to set the maximum duration the SDK will attempt to reconnect to a call before giving up.SpeakingWhileMutedRecognition to notify users when there is audio input, but microphone is muted.maxJoinRetries parameter in join() method.🔄 Changed
callRejoinTimeout in RetryConfig, instead added networkAvailabilityTimeout to CallPreferences to control how long the SDK waits for network connectivity to be restored during reconnection attempts before timing out.🐞 Fixed
DtlsSrtpKeyAgreement audio constraint parameter mapping🔄 Dependency updates
flutter_callkit_incoming dependency to the latests (2.5.5) version. That version contains Android 14 compatibility fixes for ringing notifications and lock screen handling.Added support for customization of display name for ringing notifications by providing display_name custom data to the call. See the documentation for
✅ Added
display_name custom data to the call. See the documentation for details.🐞 Fixed
muteUsers method when called for all tracks.Added setMirrorVideo method to Call class to control video mirroring for participants.
✅ Added
Added setMirrorVideo method to Call class to control video mirroring for participants.
Added call.partialState for more specific and efficient state updates.
Added maxParticipantsExcludeOwner and maxParticipantsExcludeRoles to Call limits settings, providing finer control over participant limits by allowing exclusion of call owners and specific roles from the maximum count.
🐞 Fixed
Added handleCallInterruptionCallbacks method to RtcMediaDeviceNotifier that provides an option to handle system audio interruption like incoming calls
✅ Added
handleCallInterruptionCallbacks method to RtcMediaDeviceNotifier that provides an option to handle system audio interruption like incoming calls, or other media playing. See the documentation for details.🐞 Fixed
Introduced allowMultipleActiveCalls option in StreamVideoOptions enabling support for concurrent active calls. See the documentation for details.
✅ Added
allowMultipleActiveCalls option in StreamVideoOptions enabling support for concurrent active calls. See the documentation for details.🐞 Fixed
Sync version with stream_video_flutter 0.9.4
stream_video_flutter 0.9.4Introduced callDurationStream to the Call class. A Stream that emits the current call duration.
✅ Added
callDurationStream to the Call class. A Stream<Duration> that emits the current call duration.createdByUser property to the CallState for better tracking of the initiating user.🐞 Fixed
Fixed issue with the user feedback collection endpoint.
🐞 Fixed
✅ Added
ring, audio, video, screenshare, session and frameRecordings settings to Call.getOrCreate() method.members list parameter to Call.getOrCreate() method to allow assigning roles when creating a call.session and frameRecordings settings to Call.update() method.Introduced camera focus and zoom control features:
✅ Added
Call.setZoom() method to adjust the camera’s zoom level.Call.focus() method for setting focus and exposure points on the camera.🐞 Fixed
Introducing noise cancellation support to enhance call audio quality. Implement this feature easily by following our documentation.
✅ Added
networkMonitorSettings to StreamVideoOptions for configuring network monitoring, including customization of test URLs for connection checks.🚧 (Breaking Changes)
setScreenShareEnabled method in CallSession class to return the screen sharing track.callPreferences property from CallStateNotifier to CallState for better state management.🐞 Fixed
CallPreferences could be ignored when accepting a ringing call.battery_plus plugin on older Android devices.Deprecated the setParticipantPinned() method in the Call class — use setParticipantPinnedLocally() instead.
🔄 Changed
device_info_plus dependency to support a wider range of versions and resolve potential conflicts.setParticipantPinned() method in the Call class — use setParticipantPinnedLocally() instead.isPinned parameter in CallParticipantState with a pin object, which now differentiates between local and remote pinning.✅ Added
membersLimit parameter in the getOrCreate() and join() methods of the Call class to limit the number of members included in the response.setParticipantPinnedForEveryone(), allowing users with the required permissions to pin participants for all. The setParticipantPinned() method has been replaced with setParticipantPinnedLocally(), which, as before, only pins participants locally.🔄 Changed
Introduced CallParticipantState.audioLevels, which stores the last 10 audio levels of a participant.
✅ Added
CallParticipantState.audioLevels, which stores the last 10 audio levels of a participant.CallState.activeSpeakers to retrieve a list of currently active speakers.observeCoreCallKitEvents() in StreamVideo with a new CallPreferences? preferences parameter, allowing for configuration of the accepted call.🐞 Fixed
Added CallPreferences? preferences parameter to consumeIncomingCall() method in StreamVideo to make it possible to configure the consumed call.
✅ Added
CallPreferences? preferences parameter to consumeIncomingCall() method in StreamVideo to make it possible to configure the consumed call.🐞 Fixed
thermal package throwing exception on Android 9 and lower.Introduced the onCallDisconnected callback in StreamCallContainer, enabling customization of the default behavior, which invokes Navigator.pop upon ca
✅ Added
onCallDisconnected callback in StreamCallContainer, enabling customization of the default behavior, which invokes Navigator.pop upon call disconnection.registerDevice() and unregisterDevice() methods publicly available in PushNotificationManager.Deprecated the backgroundVoipCallHandler parameter in StreamVideoPushNotificationManager, as it is no longer required for iOS ringing to function in a…
✅ Added
disposeAfterResolvingRinging() and consumeAndAcceptActiveCall() methods in StreamVideo to simplify the ringing flow implementation.
🔄 Changed
backgroundVoipCallHandler parameter in StreamVideoPushNotificationManager, as it is no longer required for iOS ringing to function in a terminated state.🐞 Fixed
stream_webrtc_flutter package.Deprecated the handleVoipPushNotification() method in the StreamVideo class. Use handleRingingFlowNotifications() instead.
🐞 Fixed
battery_plus and thermal packages were erroneously called on web.🔄 Changed
handleVoipPushNotification() method in the StreamVideo class. Use handleRingingFlowNotifications() instead.Resolved an issue where media tracks were not being disabled or enabled correctly.
🐞 Fixed
The package is now compatible with Gradle 8. The minimum required Java version is now 17.
🚧 Breaking changes
resolution parameter of Call.setPreferredIncomingVideoResolution() method changed type from VideoResolution to VideoDimension.Call.onPermissionRequest callback changed the event type passed as an argument from CoordinatorCallPermissionRequestEvent to StreamCallPermissionRequestEvent✅ Added
Call.closedCaptions stream to overlay captions during your call.CallPreferences to configure:
closedCaptionsVisibilityDurationMs for controlling how long captions are displayed.closedCaptionsVisibleCaptions for managing the number of captions in the display queue.Updated minimum Flutter version to 3.24.5
✅ Added
🐞 Fixed
Most updates are within the internals of the Call class, though some changes are outward-facing, including a few breaking changes.
This release introduces a major rework of the join/reconnect flow in the Call class to support Reconnect V2, enhancing reconnection handling across various scenarios. Most updates are within the internals of the Call class, though some changes are outward-facing, including a few breaking changes.
🔄 Changed
Call.reject() method will now always call Call.leave() method internally.🚧 Breaking changes
Call.joinLobby() method.maxDuration and maxParticipants parameters of Call.getOrCreate() are now combined into the StreamLimitsSettings? limits parameter.🔄 Dependency updates
✅ Added
registerPushDevice optional parameter (default is true) to the StreamVideo.connect() method,allowing the prevention of automatic push token registration.participantCount and anonymousParticipantCount to CallState reflecting the current number of participants in the call.watch parameter to Call.get() and Call.getOrCreate() methods (default is true). When set to true, this enables the Call to listen for coordinator events and update its state accordingly, even before the call is joined (Call.join()).targetResolution setting set on the Dashboard to determine the max resolution the video stream.Call.setPreferredIncomingVideoResolution() allows you to manually set a preferred video resolution, while Call.setIncomingVideoEnabled() enables or disables incoming video. For more details, refer to the documentation.🐞 Fixed
StreamVideo now stores registered token in SharedPreferences, performing an API call only when the token changes.dropIfAloneInRingingFlow is set to true.Migrated from internet_connection_checker to internet_connection_checker_plus due to license issues
🐞 Fixed
internet_connection_checker to internet_connection_checker_plus due to license issuesFixed an issue where active call foreground service was recreated after being stopped when ringing call was declined and in-app incoming screen was di
🐞 Fixed
🚧 Breaking changes
The regular push notification handling has been removed from iOS, providing more control over the implementation. VoIP push notifications will continue to be handled as before. For more details, refer to the documentation.
Dependency updates
internet_connection_checker updated from ^1.0.0+1 to ^2.0.0rxdart updated from ^0.27.7 to ^0.28.0web updated from ^0.5.1 to ^1.0.0web_socket_channel updated from ^2.4.0 to ^3.0.1Improved video quality for a smoother experience.
🐞 Fixed
SortParam changed to SortParamRequest in queryMembers() method inside Call and StreamVideo class
🔄 Changed
SortParam changed to SortParamRequest in queryMembers() method inside Call and StreamVideo classAdded backstage parameter to call.getOtCreate() method with backstage settings. For more information, refer to the documentation
✅ Added
backstage parameter to call.getOtCreate() method with backstage settings. For more information, refer to the documentation
joinAheadTimeSeconds parameter (part of StreamBackstageSettings)startsAt parameter to call.getOtCreate() methodmaxDuration and maxParticipants parameters to call.getOtCreate() methodvideo parameter to call.getOtCreate(), call.getCall() and call.join() methods. This parameter is used to distinguish between audio-only and video calls for ringing purposes.
video parameter is false by default. If you want your call to be treated as a video call while ringing set it to true.🐞 Fixed
CallPreferences).Previously deprecated String type parameters in makeCall() and getCallRingingState() methods are now removed. Use StreamCallType callType parameter no…
✅ Added
🐞 Fixed
🚧 Breaking changes
BroadcastSampleHandler, used for broadcast screen-sharing mode on iOS is now moved from stream_video_flutter package to a separate stream_video_screen_sharing package.
Migration steps:stream_video_screen_sharing dependency to your pubspec.yaml fileSampleHandler.swift file from stream_video_flutter to stream_video_screen_sharingPodfile file from stream_video_flutter to stream_video_screen_sharingFor complete screen-sharing guide please refer to the documentaiton
String type parameters in makeCall() and getCallRingingState() methods are now removed. Use StreamCallType callType parameter now.events and coordinatorEvents streams are now removed from Call class. Use callEvents instead.The default constructor for StreamCallType is now deprecated. Instead, use the StreamCallType.defaultType() factory constuctor.
✅ Added
watch parameter to StreamVideo.queryCalls() method, allowing you to subscribe to queried call events. For more information, refer to the documentation.listRecordings() to StreamVideo object, enabling you to query call recordings using a provided call CID.🔄 Changed
StreamCallType is now deprecated. Instead, use the StreamCallType.defaultType() factory constuctor.🐞 Fixed
ScreenSharingConstraints to adjust the quality.Fixed compilation errors on web.
🐞 Fixed
✅ Added
CallMissedEvent event will be sent now when the user misses the call.startTranscription(), stopTranscription() and listTranscriptions() methods to Call class.takeScreenshot() method to Call class.recordingExternalStorage optional param to call.startRecording() method.requestScreenSharePermission() method to Call class that ensures correct permissions are given for screen-sharing on Android.🔄 Changed
role member to roles, to reflect the possibility of the user having multiple roles, in CallParticipantState and CallMember.SortParamRequest to SortParam.🔄 Changed some of the signatures
listRecordings() method in PermissionsManager doesn't require sessionId param now.setParticipantPinned() method in Call and CallSession now requires sessionId, userId, and pinned params instead of SetParticipantPinned action.updateViewportVisibility() method in CallSession now requires visibilityChange param instead of UpdateViewportVisibility action.setSubscriptions() and updateSubscription() methods in CallSession now require a list of subscriptionChanges param instead of a list of SetSubscription actions.reason param to reject() method in Call class.Removed
updateSubscriptions method from Call.Added ClientDetails to SFU's join request.
✅ Added
ClientDetails to SFU's join request.🐞 Fixed
Bumped connectivity_plus dependency to 6.0.3
🚧 Build breaking changes
connectivity_plus dependency to 6.0.3Note, that this changes the plugin requirements:
- compileSDK 34 for Android part
- Java 17 for Android part
- Gradle 8.4 for Android part
🐞 Fixed
Updated minimum supported dart SDK version to 3.3.0 (which requires min Flutter SDK 3.19.0)
🚧 Breaking changes
Updated minimum supported dart SDK version to 3.3.0 (which requires min Flutter SDK 3.19.0)
Updated flutter_webrtc to 0.10.4
🐞 Fixed
Reverted flutter_webrtc dependency version back to 0.9.47 to fix the compilation issues for web in Flutter 3.19.
flutter_webrtc dependency version back to 0.9.47 to fix the compilation issues for web in Flutter 3.19.Fixed application of initial call configuration (via CallConnectOptions) and default settings from Stream Dashboard
🐞 Fixed
CallConnectOptions) and default settings from Stream Dashboard✅ Added
audioOutputDevice, audioInputDevice and cameraFacingMode added to CallConnectOptionsconnectOptions parameter added to call.join() method as a preferred way of setting initial call configuration - check out our documentation for more infoUpdated minimum supported SDK version to Flutter 3.16
✅ Added
mirrorMode parameter to CameraConstraints, which determines whether the camera for the given track should be mirrored or not. When set as defaultMode the mirroring is set as true, when facingMode is set to user and false when facingMode is set to environment.🐞 Fixed
Added callEvents stream to Call that replaces events and coordinatorEvents streams (both are now deprecated).
✅ Added
callEvents stream to Call that replaces events and coordinatorEvents streams (both are now deprecated).callBackgroundBuilder to StreamOutgoingCallContent.🚧 Breaking changes
callCid parameter requirement from sendCustomEvent method in Call class.🐞 Fixed
Call participants list in CallState during ringing.Added keepConnectionsAliveWhenInBackground to StreamVideoOptions to allow keeping websocket connections and event subscribtions open when app is in th
✅ Added
keepConnectionsAliveWhenInBackground to StreamVideoOptions to allow keeping websocket connections and event subscribtions open when app is in the background (false by default).🐞 Fixed
Your coding agent can read these notes before it upgrades. Set up the MCP server →