stream_video 0.9.6 
stream_video: ^0.9.6 copied to clipboard
The Official Low-level Client for Stream Video, a service for building video calls, audio rooms, and live-streaming applications.
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 π