stream_video 1.2.1
stream_video: ^1.2.1 copied to clipboard
The Official Low-level Client for Stream Video, a service for building video calls, audio rooms, and live-streaming applications.
1.2.1 #
- Sync version with
stream_video_flutter1.2.1
1.2.0 #
- Sync version with
stream_video_flutter1.2.0
1.1.0 #
β‘ Performance #
- Improved
call.join()performance - reduced join time by optimizing WebRTC setup and deferring non-critical operations. - Improved SFU allocation reliability.
1.0.2 #
π Fixed
-
Fixed incoming call timeout handling.
- Use
streamVideo.observeCoreRingingEventsForBackground()instead ofstreamVideo.observeCallDeclinedRingingEvent()infirebaseMessagingBackgroundHandlerto support all necessary events.
- Use
-
Improved SFU stats implementation.
1.0.1 #
β Added #
- Added support for changing the camera target resolution during an ongoing call using the
call.setCameraTargetResolution()method.
1.0.0 #
π§ Breaking changes #
CallKit/Ringing
In this release, we removed the dependency on flutter_callkit_incoming, which introduces breaking changes in the CallKit and ringing functionality:
- API renames and type changes
onCallKitEventis nowonRingingEventobserveCoreCallKitEventsis nowobserveCoreRingingEventsobserveCallAcceptCallKitEventis nowobserveCallAcceptRingingEventobserveCallDeclinedCallKitEventis nowobserveCallDeclinedRingingEventobserveCallEndedCallKitEventis nowobserveCallEndedRingingEvent- The
CallKitEventtype is nowRingingEvent
Deprecated members
- Removed deprecated APIs and parameters. Migrate as follows:
StreamVideo.muteVideoWhenInBackgroundβStreamVideo.options.muteVideoWhenInBackgroundStreamVideo.muteAudioWhenInBackgroundβStreamVideo.options.muteAudioWhenInBackground- Default
StreamCallType()constructor βStreamCallType.defaultType() Call.setParticipantPinned()βCall.setParticipantPinnedLocally()(local-only pin)- Removed deprecated
startRtmpBroadcastsparameter fromCall.goLive() - Removed
localParticipantparameter fromAddReactionOptionconstructor - Removed multiple deprecated builder callbacks in favor of callbacks that don't provide the state object; corresponding state object parameters in affected widgets have been removed.
- Deprecated
androidAudioAttributesUsageTypeandandroidAudioAttributesContentTypeparameters inRtcMediaDeviceNotifier.handleCallInterruptionCallbacks()
β Added #
- Added
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 - usecall.addMembers()first if needed. - Added
RtcMediaDeviceNotifier.pauseAudioPlayout()/RtcMediaDeviceNotifier.resumeAudioPlayout()to mute and restore remote playback with platform-specific handling for iOS/macOS and Android. - [Android] Enhanced interruption handling via
RtcMediaDeviceNotifier.handleCallInterruptionCallbacks(). - [Android] Added
RtcMediaDeviceNotifier.regainAndroidAudioFocus()to request audio focus when it was lost without automatic regain.
π Fixed #
- Resolved an issue that could cause the StreamVideo instance to be disposed prematurely before ringing events were fully processed when handling ringing notifications in the terminated state.
0.11.2 #
π Fixed
- [Web] Fixed setting input audio/video device passed by
CallConnectOptionsas well as switching those devices during the call. - [Web] Fixed changing the output audio device during the call.
- [Android/iOS] Fixed an issue where screen sharing was not stopped correctly when canceled via the system UI on Android or iOS.
- [iOS] Improved broadcast extension handling β the app now waits for the broadcast picker selection before actually starting screen sharing.
- Resolved an issue where the camera wouldnβt flip correctly if the back camera was selected initially.
- Fixed an issue where
callMemberscollection wasn't reflecting the actual members list after starting the call session.
β Added
- [Web] Added
checkIfAudioOutputChangeSupported()to theCallclass to check whether the browser supports changing the audio output device.
0.11.1 #
π Changed
- The
byParticipantSourceparticipant sorting now accepts a list of sources. The default sorting forspeakerandlivestreampresets now include other ingress sources.
0.11.0 #
π§ 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
- Updated minimum Flutter version to 3.32.0
- Updated minimum supported Dart SDK version to 3.8.0
π§ Breaking changes
-
Call.statspayload structure changed- Before:
({ CallStats publisherStats, CallStats subscriberStats }) - Now:
({ PeerConnectionStatsBundle publisherStatsBundle, PeerConnectionStatsBundle subscriberStatsBundle }) - The record field names and element types have changed to provide more detailed WebRTC statistics
- Before:
-
Stats-related fields removed from
CallState- Removed:
publisherStats,subscriberStats,latencyHistory- For periodic WebRTC stats: Use
call.statsstream - For latest aggregated metrics: Use
call.statsReporter?.currentMetrics
- For periodic WebRTC stats: Use
- Removed:
-
Dependency updates
- Updated most dependencies to their latest versions to ensure compatibility and security
β Added
- New
call.statsReporterproperty provides access tocurrentMetrics - Battery level tracking now available via
call.statsReporter?.currentMetrics - Device thermal status monitoring for better call quality optimization
π Changed
Call.statsrecord field names and types updated as noted in breaking changes section
π Fixed
- Fixed leave call operation failures when parsing custom data encounters issues
- [Android] Fixed custom Android audio configuration application for participants joining calls
- [Android] Fixed video rendering issue where background textures were incorrectly blended with video content on devices using Impeller rendering engine
0.10.4 #
β Added
- Extended
CallParticipantStatewithparticipantSource. This indicates the participant's source channel (e.g., WebRTC, RTMP, WHIP) and can be used in filtering and sorting criteria. - Livestream sorting preset now prioritises RTMP sources in layout sorting.
- Automatic SFU-driven pausing of inbound video to save bandwidth and prevent visual artifacts:
- New
SfuClientCapability.subscriberVideoPause(on by default). Control viaCall.enableClientCapabilities()/Call.disableClientCapabilities(). - New
SfuInboundStateNotificationEventnotifies when inbound tracks are paused or resumed. CallParticipantState.pausedTracksandCallParticipantState.isTrackPaused()let you check which tracks are currently paused.
- New
- Added capability to remove a participant from a call via
call.kickUser(). Requires thekick-userpermission.
π Fixed
- Multitasking camera on iOS is now enabled only once and kept enabled. This fixes potential errors when quickly toggling camera.
0.10.3 #
π Fixed
- Handled SFU stats reporting failures gracefully
β Added
- Added option to configure android audio configuration when initializing
StreamVideoinstance by providingandroidAudioConfigurationtoStreamVideoOptions.
0.10.2 #
β Added
- Introduced the
reconnectTimeoutoption inCallPreferences, allowing you to set the maximum duration the SDK will attempt to reconnect to a call before giving up. SpeakingWhileMutedRecognitionto notify users when there is audio input, but microphone is muted.- Added tracking for failed SFU join attempts. If a client fails to connect to the same SFU twice, it will now request a new SFU from the Coordinator. Also added max join retries counter (default to 3) to improve call connection reliability - it can be configured by providing
maxJoinRetriesparameter injoin()method.
π Changed
- Deprecated
callRejoinTimeoutinRetryConfig, instead addednetworkAvailabilityTimeouttoCallPreferencesto control how long the SDK waits for network connectivity to be restored during reconnection attempts before timing out.
π Fixed
- Sorting of participants after screen sharing stopped.
- Fixed
DtlsSrtpKeyAgreementaudio constraint parameter mapping
π Dependency updates
- Updated
flutter_callkit_incomingdependency to the latests (2.5.5) version. That version contains Android 14 compatibility fixes for ringing notifications and lock screen handling.
0.10.1 #
β Added
- Added support for customization of display name for ringing notifications by providing
display_namecustom data to the call. See the documentation for details.
π Fixed
- Fixed an issue where the last reaction was removed too fast when a user sends multiple reactions quickly after each other.
- Fixed an issue where toggling camera enabled quickly could cause AVCaptureMultiCamSession to crash.
- Fixed an issue where the default camera selection would occasionally be incorrect even when properly configured.
- Fixed an issue where changing the audio input device while muted from the start of a call would not apply the new device when unmuting. The selected device will now be correctly set upon unmuting.
- Fixed an issue where coordinator events were not listened to after a fast reconnect in a Call.
- Fixes an issue with
muteUsersmethod when called for all tracks.
0.10.0 #
β Added
-
Added
setMirrorVideomethod toCallclass to control video mirroring for participants. -
Added
call.partialStatefor more specific and efficient state updates. -
Added
maxParticipantsExcludeOwnerandmaxParticipantsExcludeRolesto Call limits settings, providing finer control over participant limits by allowing exclusion of call owners and specific roles from the maximum count.
π Fixed
- Improved SFU error handling in Call flow and disconnect reason handling. The disconnected call state now accurately reflects the original cause of disconnection.
- Fixed an issue where rejecting a ringing call on one device would incorrectly end the call for all already connected participants.
- Enhanced fast reconnect mechanism with improved PeerConnection issue detection and recovery. The system now attempts multiple fast reconnects before falling back to a full call rejoin.
- Fixed simulcast video quality by correcting resolution calculations and layer selection for optimal video track display.
- Fixed an edge case where a call with the same CID as an incoming call is also an outgoing call to ensure the same Call instance is used.
0.9.6 #
β Added
- Added
handleCallInterruptionCallbacksmethod toRtcMediaDeviceNotifierthat provides an option to handle system audio interruption like incoming calls, or other media playing. See the documentation for details.
π Fixed
- Fixed the handling of user blocking event to disconnect the blocked user with a proper reason.
0.9.5 #
β Added
- Introduced
allowMultipleActiveCallsoption inStreamVideoOptionsenabling support for concurrent active calls. See the documentation for details.
π Fixed
- Enhanced permission update handling to only process events targeting the current user.
- Improved audio output device selection to prioritize external audio devices during call connection.
0.9.4 #
- Sync version with
stream_video_flutter0.9.4
0.9.3 #
β Added
- Introduced
callDurationStreamto theCallclass. AStream<Duration>that emits the current call duration. - Added
createdByUserproperty to theCallStatefor better tracking of the initiating user.
π Fixed
- Resolved an issue where participantsβ tracks would briefly disappear ("blink") or change location when many participants are in the call.
- Fixed a bug where subsequent screen sharing sessions did not end properly when terminated via the browser UI.
0.9.2 #
π Fixed
- Fixed issue with the user feedback collection endpoint.
β Added
- Added
ring,audio,video,screenshare,sessionandframeRecordingssettings toCall.getOrCreate()method. - Added
memberslist parameter toCall.getOrCreate()method to allow assigning roles when creating a call. - Added
sessionandframeRecordingssettings toCall.update()method.
0.9.1 #
β Added
- Introduced camera focus and zoom control features:
- New
Call.setZoom()method to adjust the cameraβs zoom level. - New
Call.focus()method for setting focus and exposure points on the camera.
- New
π Fixed
- [Android] Fixes the device orientation detection when screen-sharing on some Android devices.
- Addressed minor bugs and improved performance.
0.9.0 #
β Added
- Introducing noise cancellation support to enhance call audio quality. Implement this feature easily by following our documentation.
- Added
networkMonitorSettingstoStreamVideoOptionsfor configuring network monitoring, including customization of test URLs for connection checks.
π§ (Breaking Changes)
- Improved
setScreenShareEnabledmethod inCallSessionclass to return the screen sharing track. - Relocated
callPreferencesproperty fromCallStateNotifiertoCallStatefor better state management. - Increased minimum platform requirements
- Android: Minimum SDK 21 (Android 5.0 Lollipop)
- iOS: iOS 14.0 or higher
π Fixed
- Enhanced fast reconnect flow for more reliable connection recovery during network interruptions.
- Resolved an issue where video tracks weren't properly subscribed when participants joined calls.
- Fixed multi-device support to properly handle when the same user joins from multiple devices.
- Corrected screen sharing source switching when changing between multiple sources.
- Fixed a bug where
CallPreferencescould be ignored when accepting a ringing call. - (Android) Resolved compatibility issues with
battery_plusplugin on older Android devices. - (Web) Fixed screen sharing termination when using browser UI controls to stop sharing.
0.8.4 #
π Changed
- Updated the
device_info_plusdependency to support a wider range of versions and resolve potential conflicts. - Deprecated the
setParticipantPinned()method in theCallclass β usesetParticipantPinnedLocally()instead. - Replaced the
isPinnedparameter inCallParticipantStatewith apinobject, which now differentiates between local and remote pinning.
β Added
- Introduced a
membersLimitparameter in thegetOrCreate()andjoin()methods of theCallclass to limit the number of members included in the response. - Added
setParticipantPinnedForEveryone(), allowing users with the required permissions to pin participants for all. ThesetParticipantPinned()method has been replaced withsetParticipantPinnedLocally(), which, as before, only pins participants locally.
π Changed
- Update stream_webrtc_flutter and device_info_plus dependencies
0.8.3 #
β Added
- Introduced
CallParticipantState.audioLevels, which stores the last 10 audio levels of a participant. - Added
CallState.activeSpeakersto retrieve a list of currently active speakers. - Enhanced
observeCoreCallKitEvents()inStreamVideowith a newCallPreferences? preferencesparameter, allowing for configuration of the accepted call. - Implemented localization support for the SDK's UI components. See the documentation for details.
- Added the ability to customize the screen share selector on desktop devices. See the updated documentation for details.
π Fixed
- Resolved various issues related to screen sharing on desktop devices.
0.8.2 #
β Added
- Added
CallPreferences? preferencesparameter toconsumeIncomingCall()method inStreamVideoto make it possible to configure the consumed call.
π Fixed
- Fixed remote participant roles array being empty after joining the call.
- Fixed and issue with
thermalpackage throwing exception on Android 9 and lower.
0.8.1 #
β Added
- Introduced the
onCallDisconnectedcallback inStreamCallContainer, enabling customization of the default behavior, which invokesNavigator.popupon call disconnection. - Made
registerDevice()andunregisterDevice()methods publicly available inPushNotificationManager.
0.8.0 #
- Updated minimum Flutter version to 3.27.4
β Added
- Introduced
disposeAfterResolvingRinging()andconsumeAndAcceptActiveCall()methods inStreamVideoto simplify the ringing flow implementation.- Refer to the updated Incoming Call Documentation or the Ringing Tutorial for more details.
π Changed
- Deprecated the
backgroundVoipCallHandlerparameter inStreamVideoPushNotificationManager, as it is no longer required for iOS ringing to function in a terminated state.
π Fixed
- (Windows/Linux) Fixes compilation issues caused by
stream_webrtc_flutterpackage.
0.7.2 #
π Fixed
- Resolved an issue where accepting a second call while already on a call would not open the call screen correctly.
- (Web) Fixed web compilation issues.
- (Web) Addressed an issue where
battery_plusandthermalpackages were erroneously called on web. - (iOS) Fixed an issue where Picture-in-Picture mode was not ended when the call ended.
- (iOS) Resolved an issue where CallKit calls sometimes were not terminated when the Stream call ended.
- (iOS) Fixed a missing app icon on the CallKit screen when the app was in a terminated state.
π Changed
- Deprecated the
handleVoipPushNotification()method in theStreamVideoclass. UsehandleRingingFlowNotifications()instead.
0.7.1 #
π Fixed
- Resolved an issue where media tracks were not being disabled or enabled correctly.
- Fixed a problem causing anonymous users to fail when connecting and joining calls.
0.7.0 #
π§ Breaking changes
- The package is now compatible with Gradle 8. The minimum required Java version is now 17.
- The
resolutionparameter ofCall.setPreferredIncomingVideoResolution()method changed type fromVideoResolutiontoVideoDimension. - The
Call.onPermissionRequestcallback changed the event type passed as an argument fromCoordinatorCallPermissionRequestEventtoStreamCallPermissionRequestEvent
β Added
- Added support for Closed Captions:
- Listen to the
Call.closedCaptionsstream to overlay captions during your call. - Use
CallPreferencesto configure:closedCaptionsVisibilityDurationMsfor controlling how long captions are displayed.closedCaptionsVisibleCaptionsfor managing the number of captions in the display queue.
- Learn More:
- Listen to the
- Dynamic codec negotiation during calls.
0.6.1 #
- Updated minimum Flutter version to 3.24.5
β Added
- Added the 'call.collectUserFeedback()' method which allows users to send call quality rating. These ratings are visible on the Dashboard and are aggregated in call stats for easy tracking. For a sample implementation, please refer to the cookbook.
- Added device thermal status reporting to better optimize call quality.
π Fixed
- Fixes rejecting ringing call when CallEnd, instead of CallDecline, event is triggered by CallKit during ringing.
0.6.0 #
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 callCall.leave()method internally.
π§ Breaking changes
- Removed the deprecated
Call.joinLobby()method. - The
maxDurationandmaxParticipantsparameters ofCall.getOrCreate()are now combined into theStreamLimitsSettings? limitsparameter.
π Dependency updates
- Updated Firebase dependencies to resolve Xcode 16 build issues.
β Added
- Added the
registerPushDeviceoptional parameter (default istrue) to theStreamVideo.connect()method,allowing the prevention of automatic push token registration. - Added
participantCountandanonymousParticipantCounttoCallStatereflecting the current number of participants in the call. - Introduced the
watchparameter toCall.get()andCall.getOrCreate()methods (default istrue). When set totrue, this enables theCallto listen for coordinator events and update its state accordingly, even before the call is joined (Call.join()). - Added support for
targetResolutionsetting set on the Dashboard to determine the max resolution the video stream. - Introduced new API methods to give greater control over incoming video quality.
Call.setPreferredIncomingVideoResolution()allows you to manually set a preferred video resolution, whileCall.setIncomingVideoEnabled()enables or disables incoming video. For more details, refer to the documentation.
π Fixed
- Automatic push token registration by
StreamVideonow stores registered token inSharedPreferences, performing an API call only when the token changes. - Fixed premature ringing termination issues.
- Resolved issues where ringing would not end when the caller terminates the call in an app-terminated state.
- Fixed issue with call not ending in some cases when only one participant is left and
dropIfAloneInRingingFlowis set totrue.
0.5.5 #
π Fixed
- Migrated from
internet_connection_checkertointernet_connection_checker_plusdue to license issues
0.5.4 #
π Fixed
- Fixed an issue where active call foreground service was recreated after being stopped when ringing call was declined and in-app incoming screen was displayed.
π§ 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
- Flutter SDK constraint updated to >=3.22.0 (Dart SDK to >=3.4.0 <4.0.0)
internet_connection_checkerupdated from ^1.0.0+1 to ^2.0.0rxdartupdated from ^0.27.7 to ^0.28.0webupdated from ^0.5.1 to ^1.0.0web_socket_channelupdated from ^2.4.0 to ^3.0.1
0.5.3 #
π Fixed
- Improved video quality for a smoother experience.
- Resolved an issue where the participant's state showed an empty roles list.
- Fixed a bug that caused the CallKit ringing notification to continue after a call was accepted.
0.5.2 #
π Changed
SortParamchanged toSortParamRequestinqueryMembers()method insideCallandStreamVideoclass
0.5.1 #
β Added
- Added
backstageparameter tocall.getOtCreate()method with backstage settings. For more information, refer to the documentation- Ability to join call in advance with
joinAheadTimeSecondsparameter (part ofStreamBackstageSettings)
- Ability to join call in advance with
- Added
startsAtparameter tocall.getOtCreate()method - Added
maxDurationandmaxParticipantsparameters tocall.getOtCreate()method - Added
videoparameter tocall.getOtCreate(),call.getCall()andcall.join()methods. This parameter is used to distinguish between audio-only and video calls for ringing purposes.- βImportantβ the
videoparameter isfalseby default. If you want your call to be treated as a video call while ringing set it totrue.
- βImportantβ the
π Fixed
- Fixed reaction dismissal: Sent and received reactions are now correctly dismissed after a 5-second timeout (configurable in
CallPreferences). - Fixed the cancel button behavior in the screen-sharing notification on Android. It will now correctly stop the screen-sharing process.
- Fixed the issue with the cancel button in the call-in-progress notification was not stopping the call.
- Fixed the connection quality updates for other call participants.
- Fixed an issue where declining a ringing call when the app was in a terminated state did not stop the ringing on the caller's end.
0.5.0 #
β Added
- Picture in Picture (PiP) is now also supported on iOS. For more information, refer to the documentation
π Fixed
- Fixed an issue where the microphone was being muted when the app was running in the background on Android versions greater than 14.
π§ Breaking changes
- The implementation of
BroadcastSampleHandler, used forbroadcastscreen-sharing mode on iOS is now moved fromstream_video_flutterpackage to a separate stream_video_screen_sharing package. Migration steps:
- Add
stream_video_screen_sharingdependency to yourpubspec.yamlfile - Replace the import in
SampleHandler.swiftfile fromstream_video_fluttertostream_video_screen_sharing - Replace the dependancy added to the extension target in
Podfilefile fromstream_video_fluttertostream_video_screen_sharing
For complete screen-sharing guide please refer to the documentaiton
- Previously deprecated
Stringtypeparameters inmakeCall()andgetCallRingingState()methods are now removed. UseStreamCallTypecallTypeparameter now. - Previously deprecated
eventsandcoordinatorEventsstreams are now removed fromCallclass. UsecallEventsinstead.
0.4.4 #
β Added
- Added
watchparameter toStreamVideo.queryCalls()method, allowing you to subscribe to queried call events. For more information, refer to the documentation. - Introduced
listRecordings()toStreamVideoobject, enabling you to query call recordings using a provided call CID.
π Changed
- The default constructor for
StreamCallTypeis now deprecated. Instead, use theStreamCallType.defaultType()factory constuctor.
π Fixed
- Improved the quality of screen sharing. It now correctly respects the parameters set in
ScreenSharingConstraintsto adjust the quality.
0.4.3 #
π Fixed
- Fixed reconnection flow.
- Fixed compilation errors on web.
- Fixed screen-sharing not working on some versions of Android.
- Fixed accepting incoming call during another call (or outgoing call).
- Fixed CallKit incoming push label and Android accept call button icons for audio-only calls.
β Added
- Added support for missed calls. Push notifications and
CallMissedEventevent will be sent now when the user misses the call. - Added support for call transcription check transcription cookbook
- Added
startTranscription(),stopTranscription()andlistTranscriptions()methods toCallclass.
- Added
- Added option to take a screenshot during the call check screenshot documentation
- Added
takeScreenshot()method toCallclass.
- Added
- Added
recordingExternalStorageoptional param tocall.startRecording()method. - Added
requestScreenSharePermission()method toCallclass that ensures correct permissions are given for screen-sharing on Android.
π Changed
- Changed
rolemember toroles, to reflect the possibility of the user having multiple roles, inCallParticipantStateandCallMember. - Changed
SortParamRequesttoSortParam.
π Changed some of the signatures
listRecordings()method in PermissionsManager doesn't requiresessionIdparam now.setParticipantPinned()method inCallandCallSessionnow requiressessionId,userId, andpinnedparams instead ofSetParticipantPinnedaction.updateViewportVisibility()method inCallSessionnow requiresvisibilityChangeparam instead ofUpdateViewportVisibilityaction.setSubscriptions()andupdateSubscription()methods inCallSessionnow require a list ofsubscriptionChangesparam instead of a list ofSetSubscriptionactions.- Added optional
reasonparam toreject()method inCallclass.
Removed
- Removed
updateSubscriptionsmethod fromCall.
0.4.2 #
β Added
- Added
ClientDetailsto SFU'sjoinrequest.
π Fixed
- Tweaked SFU events handling to ensure there is no gap in handling them.
- Fixed camera and microphone toggling on incoming/outgoing screen.
- Fixed screen sharing not working when camera track was enabled.
- Fixed issues with video freezing sometimes.
0.4.1 #
π§ Build breaking changes
- Bumped
connectivity_plusdependency to6.0.3
Note, that this changes the plugin requirements:
- compileSDK 34 for Android part
- Java 17 for Android part
- Gradle 8.4 for Android part
π Fixed
- Added foreground service type to service declaration in AndroidManifest
0.4.0 #
π§ Breaking changes
-
Updated minimum supported dart SDK version to
3.3.0(which requires min Flutter SDK3.19.0) -
Updated
flutter_webrtcto 0.10.4
π Fixed
- Fixed an issue where subscriber offer events might be missed causing missing video/audio tracks for call participants.
- Fixed speakerphone/earpiece switching on iOS.
- User is now diconnected immedietaly when leaving the call.
0.3.9 #
- Reverted
flutter_webrtcdependency version back to0.9.47to fix the compilation issues for web in Flutter 3.19.
0.3.8 #
π Fixed
- Fixed application of initial call configuration (via
CallConnectOptions) and default settings from Stream Dashboard - Default camera facing is now applied from Dashboard settings (was ignored previously)
β Added
audioOutputDevice,audioInputDeviceandcameraFacingModeadded toCallConnectOptions- Optional
connectOptionsparameter added tocall.join()method as a preferred way of setting initial call configuration - check out our documentation for more info
0.3.7 #
- Updated minimum supported SDK version to Flutter 3.16
β Added
- Added
mirrorModeparameter toCameraConstraints, which determines whether the camera for the given track should be mirrored or not. When set asdefaultModethe mirroring is set as true, whenfacingModeis set touserand false when facingMode is set toenvironment.
π Fixed
- Fixed an issue that might break screen sharing functionality.
- Fixed an issue that caused output audio device not being set correctly.
- Fixed an issue that still caused constant notification sound being triggered during the call on Android.
- Fixed an issue that blocked volume adjustment during the call on Android.
0.3.6 #
β Added
- Added
callEventsstream toCallthat replaceseventsandcoordinatorEventsstreams (both are now deprecated). - Added
callBackgroundBuildertoStreamOutgoingCallContent.
π§ Breaking changes
- Removed the
callCidparameter requirement fromsendCustomEventmethod inCallclass.
π Fixed
- Fixed an issue that caused an empty
Callparticipants list inCallStateduring ringing. - Fixed an issue that caused constant notification sound being triggered during the call on Android.
- Disabled camera mirroring when using back camera and when screensharing.
0.3.5 #
β Added
- Added
keepConnectionsAliveWhenInBackgroundtoStreamVideoOptionsto allow keeping websocket connections and event subscribtions open when app is in the background (false by default). - Added support for Picture in Picture feature to Android - check out our documentation for more info
- Added usage statictics reporting
π Fixed
- Fixed handling of default audio output device setting from Stream dashboard
- Fixed handling of default camera/microphone state setting from Stream dashboard
- Fixed an issue where call could sometimes loose participants state
0.3.4 #
- Sync version with
stream_video_flutter0.3.4
0.3.3 #
- Added
StreamCallTypeclass that replaces depricated Stringtypeparameter - Exapanded
CallStatsclass with more structured WebRTC statistics asstatsfield - Changed
rawstatistics inCallStatsto be of a Map<Stirng, dynamic> type - Added
publisherStats,subsciberStatsandlatencyHistoryto theCallStatethat hold some of the processed statistcs
Bug fixes
- Fixes incoming call behavior when both CallKit and Stream incoming screen component is used
- Fixes the issue on Android that caused missed call notification when ringing with reused call id
0.3.2 #
π Fixed
- Various fixes to call ringing and push notifications.
- Fixes call ringing cancellation when app is terminated on iOS (requires additional setup - check Step 6 of the APNS integration) in our documentation.
- Fixes late push notification handling on Android, where already ended call was ringing if the device was offline and the push was delivered with a delay.
- Fixes call ringing cancellation when caller timed out while calling
- Fixed action tap callback on Android call notification.
- Fixes possible crashes for Android SDKs versions <26.
- Fixed screen sharing on iOS when screen sharing mode was switched between
in-appandbroadcast. - Changed the version range of
intlpackage to >=0.18.1 <=0.19.0 because it was causing isses with other packages.
β Added
- Added
customfield toCallParticipantStatewith custom user data. - Added
CallTypeto statically track the type of call (audio, video, screen share).
0.3.1 #
- Important: Fixes crash for CallKit on iOS.
- Added support for SFU migration to improve video resilience.
- Fixes for streaming flags in
CallState(backstage, broadcasting, recording).
0.3.0 #
π§ Breaking changes
- Removed the
incomingCallerNameOverrideandincomingCallerHandlerOverridefromStreamVideoPushParamsin favor of the newcallerCustomizationCallbackinStreamVideoPushNotificationManager.
β Added
callerCustomizationCallbacktoStreamVideoPushNotificationManagerthat allow dynamic customization of CallKit call screen
Example usage:
pushNotificationManagerProvider: StreamVideoPushNotificationManager.create(
...
callerCustomizationCallback: ({required callCid, callerHandle, callerName}) =>
CallerCustomizationResponse(name: "Customized $callerName"),
),
- Added a
includeUserDetailsfield to determine if user details should be passed to backend when connecting user. - Exposed call coordinator events through the
coordinatorEventsstream in theCallclass. - Added
team,notify, andcustomproperties togetOrCreate()forCall.
π Fixed
- Added Apple audio configuration to make audio work in silent mode.
- Fixes
queryCallsresponse mapping.
π Changed
0.2.0 #
β Added
removeMembersandupdateCallMemberstoCall
π Changed
Breaking changes π§
- renamed
inviteUserstoaddMembersinCall - renamed parameter name in
getOrCreateCallfromparticipantIdstomemberIds
0.1.1 #
- Fixed call join bug
- Fixed CallKit call not ending bug
- Anonymous users can no longer connect to WS
- Users can no longer join a call twice
0.1.0 #
- Aligned SDK initialization with other SDKs
- Fixed callkit and push implementation for SDK
- Added parsing for CallPermissions
- Fix duplicate participants in call
- General bug fixes and improvements
0.0.3 #
- Updated minimum supported
SDKversion to Flutter 3.10/Dart 3.0
0.0.2 #
- Updates for backend
- Support for reactions
0.0.1+1 #
- Fixed README
0.0.1 #
- Initial beta release of Stream Video π