videosdk 3.12.1
videosdk: ^3.12.1 copied to clipboard
Video SDK Flutter to simply integrate Audio & Video Calling API or Live Video Streaming API to your app with just a few lines of code.
3.12.1 #
Release Date: 20th August 2026
Change Log :
Bug Fixes:
-
Android builds no longer need any manual setup. Building an app for Android could fail in Gradle with a
compileSdkVersionerror, Android builds now work directly afterflutter pub get, on developer machines and CI alike. -
Prepared the Android build for Android Gradle Plugin 9. The SDK now applies the Kotlin Gradle plugin only when AGP is not compiling Kotlin itself, so it keeps building on both current and upcoming AGP versions. No change is needed in your app.
The SDK's own Android sources now compile against Java 17. Your app's
compileOptionsare unaffected — apps building at Java 11 or Java 8 continue to work unchanged.
3.12.0 #
Release Date: 18th August 2026
Change Log :
Meeting actions now report an error instead of doing nothing #
Calling a meeting action before the meeting is joined, or while it is reconnecting, is now rejected and reported through Events.error. This covers Room, Participant, Stream, PubSub, RealtimeStore and Character.
- Before the meeting is joined, and after it is left or ended:
ERROR_ACTION_PERFORMED_BEFORE_MEETING_JOINED(3022) - While reconnecting:
ERROR_MEETING_RECONNECTING(3027) leave()is never blocked — it works while the meeting is still connecting and while it is reconnecting, so you can always get out.end()works while connecting, but not while reconnecting, because closing the meeting for everyone needs a working connection.
New RoomState.failed #
Delivered through Events.roomStateChanged when a join could not be set up at all — a rejected token, or meeting settings that could not be fetched. Unlike reconnecting, nothing retries it; call join() again to start a fresh attempt.
Breaking: if you
switchoverRoomStatewithout adefaultbranch, addcase RoomState.failed:when upgrading.
Fixes #
-
leave()no longer hangs when the connection drops. Callingleave()while the meeting was reconnecting never finished — the camera and microphone stayed on andEvents.roomLeftnever fired, so the app was stuck on the meeting screen. Leaving now completes immediately, whatever the connection is doing. -
Actions called before join no longer crash.
participant.pin(),unpin()and therealtimeStoremethods report the error instead of throwing.
3.11.0 #
Release Date: 11th August 2026
Change Log :
Your camera & microphone settings now stay applied for the whole meeting #
Earlier, the settings you chose while creating a camera or microphone track were applied only the first time. Whenever the SDK needed to recreate the track, it went back to its own defaults (720p video, speech_standard audio, front camera, no noise settings). So a participant who joined at 1080p could end up sending 720p video after simply turning the camera off and on again.
Your chosen settings are now remembered and re-applied every time. This covers:
- Camera: selected camera,
encoderConfig(resolution/quality),multiStream,bitrateMode,maxLayerandfacingMode. - Microphone: selected microphone,
encoderConfig(audio quality) andnoiseConfig.
codec is the one exception — it follows what the meeting can actually carry. If a participant joins who cannot decode your selected codec, the camera falls back to VP8 and stays there for the rest of the meeting, even if that participant leaves.
Settings are preserved across all of these:
disableCam()→enableCam()andmuteMic()→unmuteMic()changeCam()/changeMic()when switching to another device- Automatic reconnection after a network drop
- Automatic recovery when a camera or microphone stops (device unplugged, or taken over by another app)
changeMode()betweenSEND_AND_RECV,RECV_ONLY
If you pass a new CustomTrack to enableCam(), unmuteMic(), changeCam() or changeMic(), that track's settings become the remembered settings from that point on.
Fixes #
-
A new track no longer changes the quality of a track that is already being sent. The selected
bitrateModewas shared across tracks, so creating a second track with a different mode changed the quality of the video already going out. Each track now uses only the mode you set for it. -
Your
multiStreamchoice is no longer lost. If the video codec in use could not send multiple quality layers,multiStreamstayed switched off for the rest of the meeting. Your choice is now remembered and applied again automatically once the codec allows it. -
Unmuting works even if the microphone was released earlier. If something else had taken the microphone away — another app, or the participant changing mode — unmuting could fail to bring it back. The SDK now creates a fresh microphone with your saved settings.
-
The same codec warning is no longer repeated. The warning about multiple quality layers not being supported by the selected codec was raised again on every camera on/off. It is now raised only when you supply a track yourself.
-
The camera and microphone no longer switch off on their own. When the SDK replaces the camera or mic stream (codec change, device switch, reconnect), the old stream sends a "stopped" notice. That notice was treated as "the user's camera stopped", so the camera turned off right after turning on. Each notice is now matched to the stream it belongs to.
-
The camera no longer restarts twice. The SDK turns the camera off and on again automatically when it must re-send video in a different codec. If two participants who need that change joined at nearly the same moment, this ran twice — other participants saw the video freeze for about twice as long. Only one restart now runs at a time.
-
Running more than one meeting in the same app shows the correct camera/mic state. Camera and mic on/off state was shared between meetings, so one meeting could report the other's state. Each meeting now keeps its own — this also fixes wrong state when leaving and rejoining quickly.
-
A muted microphone or camera works again after a mode change. If the mic (or camera) was off when
changeMode()was called, the SDK released it but still held on to the released one and tried to reuse it. Unmuting afterwards showed the mic as ON while no one could hear the participant. A fresh microphone/camera is now always created. -
Invalid
maxLayervalues are handled safely. Values outside1–3are adjusted to the nearest valid value instead of producing a broken video configuration.
3.10.1 #
Release Date: 24th July 2026
Change Log :
- Removed the third-party dependency to resolve limitation of flutter sdk version.
3.10.0 #
Release Date: 7th July 2026
Change Log :
- Added support for selectable video codecs in
createCameraVideoTrack(). Thecodecoption supportsVP8,VP9,AV1, andH264throughVideoCodec.
3.9.1 #
Release Date: 12th May 2026
- Resolved an internal bug.
3.9.0 #
Release Date: 13th April 2026
Change Log :
- Added
Events.agentMetricsevent onAgentParticipantfor receiving real-time agent metrics data. - Improved room joining time.
- Improved performance by offloading heavy processing to background threads.
3.8.0 #
Release Date: 18th Mar 2026
Change Log :
- Introduced
AgentParticipant, a dedicated participant type for AI agents within a room.- Agents can be identified using the
isAgentproperty when they join.
- Agents can be identified using the
- Added
AgentStateenum (IDLE,LISTENING,THINKING,SPEAKING) to represent the agent lifecycle. - Added event listeners for agent updates:
Events.agentStateChangedto track state transitions.Events.agentTranscriptionReceivedto receive real-time transcription.
- Updated internal dependencies.
3.7.0 #
Release Date: 20th Feb 2026
Change Log :
- Introduced the
setLogLevelmethod inVideoSDK, enabling developers to control log verbosity. This improves debugging efficiency during development.
3.6.1 #
Release Date: 9th Feb 2026
Change Log :
- Updated the official Dart API Reference for the Flutter VideoSDK package.
3.6.0 #
Release Date: 5th Feb 2026
Change Log :
- Introduced an autoConsume boolean parameter to the createRoom method. Also introduced methods in the
Participantclass tostartandstopconsuming participant streams. - Updated the official Dart API Reference for the Flutter VideoSDK package.
Bug Fix :
- Resolved an audio distortion issue (chipmunk effect) occurring with Bluetooth output devices such as AirPods.
- Fixed a Windows build error affecting Flutter desktop builds.
- Resolved an issue related to switching external
CameraandMicrophonedevices on the web. - Updated Internal Dependencies.
- Fixed an issue that caused video streams to not render when multiple participants were present in a meeting on
macOS.
3.5.1 #
Release Date: 20th Jan 2026
- Updated internal dependencies.
3.5.0 #
Release Date: 06th Jan 2026
- Added
Realtime Store functionalityto store, update, retrieve, and observe custom key-value data in real time during a meeting - Fixed an iOS issue with switching audio output devices.
3.4.0 #
Release Date: 31st Dec 2025
-
Updated the default encoderConfig value in
createCameraVideoTrack()toh720p_w1280p. -
Introduces advanced video track optimization features, enabling greater flexibility and control over quality and bandwidth. Below are the new parameters added to
createCameraVideoTrack().-
BitrateMode- Added the
BitrateModeparameter to manage video quality and bandwidth usage easily. - Developers can now select from three modes based on their requirements:
- bandwidth_optimized
- balanced (default)
- high_quality
- Added the
-
maxLayer- Introduced the
maxLayerparameter to allow developers to specify the maximum number of simulcast layers published for a video track.
- Introduced the
-
-
Added a
quality-limitationEvent on theRoomclass, enabling detection and handling of quality constraints caused by bandwidth limitations, network congestion, or CPU pressure. -
Introduced a
stream-stateEvent on theStreamclass to track video and screen-share stream lifecycle states, including active, stuck, freeze-detected, and ended.
3.3.0 #
Release Date: 12th Dec 2025
- Introduced Adaptive Subscription Manager feature, allowing dynamic management of participant subscriptions based on network conditions and application requirements.
3.2.0 #
Release Date : 6th Nov 2025
Change Log :
- Introduced two new methods —
pause()andresume()— enabling developers to pause and resume active streams. - Added a new
LeaveReasonenum to show specificreasonin roomLeft and participantLeft event.
Bug Fix :
- Resolved an issue where acknowledgment events were not properly handled in the Pin-State system.
- Fixed a bug causing random resolutions to be used after setting a custom track, ensuring consistent video quality as defined by the user.
3.1.0 #
Release Date : 17th Oct 2025
Change Log :
- On the web, the microphone will now be muted when the input audio device is disconnected. Users will need to unmute it to continue.
Bug Fix :
- Fixed issues in Multistream.
3.0.0 #
Release Date : 19th Sept 2025
Change Log :
- Updated internal dependencies.
- Enabled system audio sharing while screen sharing on Android.
- Added Reason map on
participantleftevent - Enabled background camera access on iOS for Picture-in-Picture (PiP) mode.
Bug Fix :
- Fixed issues with room stats on Android, iOS, and macOS.
2.3.1 #
Release Date : 4th July 2025
Change Log :
- Enhanced the E2EE feature by introducing participant-wise encryption.
2.3.0 #
Release Date : 30th May 2025
Change Log :
- Added
captureImagemethod in theParticipantclass to capture the image of the user from MediaStream. - Added methods
uploadBase64FileandfetchBase64FileinRoomclass to upload and download a temporary file.
2.2.0 #
Release Date : 16th May 2025
Change Log :
- Introduced two new features to enhance the Interactive Livestream (ILS) experience:
- Fast Channel Switching – New Fast Channel Switching feature enables instant transitions between live streams with minimal latency.
- Media Relay Support – Introducing Relay Media, enabling hosts to share their media (audio, video, screen) with other live streams. Perfect for creating engaging "PK battles" and collaborative broadcasts.
2.1.2 #
Release Date : 29th April 2025
Bug Fix :
- Fixed an issue where multiStream wasn’t working properly, making multiple streams work as expected.
2.1.1 #
Release Date : 17th April 2025
Bug Fix :
- Fixed End-to-End Encryption (E2EE) for web.
Change Log :
- Added
pauseAllStreams()andresumeAllStreams()method to pause/resume all remote participant's media streams (audio, video, and screen share) or a specific stream type if provided.
2.1.0 #
Release Date : 11th April 2025
Change Log :
- Introduced End-to-End Encryption (E2EE) support to ensure secure media transmission, where media streams are fully encrypted between participants without any server-side access.
2.0.0 #
Release Date : 1st April 2025
Change Log :
- Enhanced Room/Meeting Connection Flow:
- A
RECONNECTINGstate has been introduced that activates if the network connection is lost during a meeting. The SDK will automatically try to rejoin, enhancing reliability. - The
FAILED,CLOSING, andCLOSEDstates have been eliminated. All disconnection scenarios will now be managed by theDISCONNECTEDstate for a more streamlined experience.
1.3.2+1 #
Release Date : 31st March 2025
Change Log :
- Updated internal dependencies.
1.3.1 #
Release Date : 25th February 2025
Change Log :
- Updated internal dependencies.
1.3.0 #
Release Date : 22nd January 2025
Change Log :
- Deprecated Modes: Replaced
CONFERENCEwithSEND_AND_RECVandVIEWERwithSIGNALLING_ONLY. - New Mode: Added
RECV_ONLYfor live streaming, allowing participants to receive media without sending it. - Role Switching: Enabled seamless role switching between
SEND_AND_RECV(host) andRECV_ONLY(audience) usingchangeMode()method.
1.2.5 #
Release Date : 18th December 2024
Bug Fix:
- Fixed issues related to Flutter version 3.27.
Change Log :
- Updated internal dependencies.
1.2.4 #
Release Date : 17th December 2024
Change Log :
- Added
roomStateChangedEvent.
1.2.3 #
Release Date : 24th October 2024
Change Log :
-
Dependencies updated to latest version.
-
Provided event
onUserMessageinCharacterclass.
1.2.2 #
Release Date : 23rd September 2024
Change Log :
- Provided methods and events for Whiteboard Management.
1.2.1 #
Release Date : 13th August 2024
Change Log :
- Added support for CharacterSDK.
1.2.0+1 #
Release Date : 8th August 2024
Change Log :
-
Removed support for facingMode in desktop based applications.
-
Changed value of facingMode enum from
fronttouser.
1.2.0 #
Release Date : 7th August 2024
Change Log :
-
Removed methods
getMics,getCamerasandgetAudioOutputDevicesof theRoomclass. -
Changed return type of
createMicrophoneAudioTrack()andcreateCameraVideoTrack()methods from CustomTrack to CustomTrack?. -
Changed parameter type of
changeMic(),changeCam()andswitchAudioDevice()methods. -
Improved error handling and emitting more precise errors on the event.
-
Changed type of post transcription config parameter in
startRecording(),startHls()andstartLivesStream()methods. -
Changed type of transcription config parameter in
startTranscription()method. -
Provided debugMode parameter in
createRoom()method for enabling users to view detailed error logs directly on the VideoSDK's dashboard and changed parameter type of facingMode.
1.1.13 #
Release Date : 17th July 2024
Change Log :
- Added support for Custom Video Processors in iOS and Android.
1.1.12 #
Release Date : 31st May 2024
Change Log :
-
Provided getter for selected Audio Output Device as
selectedSpeakerId. -
Provided Built-In Receiver(Earpiece) support for iOS Devices.
-
Provided
transcriptionparameter instartLivestream()method of theRoomclass.
Bug Fix :
-
Fixed bugs in getters of selected Audio Input(
selectedMicId) and Video (selectedCamId) Devices. -
Triggered the
streamdisabledevent of the participant object when a participant leaves the meeting. -
Fixed an issue where users were unable to join meetings without media permissions.
-
Disposed media tracks for the Firefox browser in
getVideoDevices()andgetAudioDevices()methods.
1.1.11+1 #
Release Date : 21th May 2024
Bug Fix :
- Changed the default value of preferredProtocol
1.1.11 #
Release Date : 20th May 2024
Change Log :
- Provide Pre-Call Screen's features.
- Provide
signalingBaseUrlparameter increateRoom()method of VideoSDK class to enable the usage of a proxy server with the VideoSDK. - Provide
preferredProtocolparameter increateRoom()method of VideoSDK class to select protocol for media transportion.
Bug Fix :
- Fixed an issue related to switch audio device for Web.
- Fixed an issue related to micEnabled and camEnabled getters.
1.1.10 #
Release Date : 6th May 2024
Change Log :
- Added support for post and realtime transcription feature
Bug Fix :
- Fixed an issue related to video and screenShare for firefox browser
1.1.9 #
Release Date : 25th Apr 2024
Bug Fix :
- Fixed voice coming from earpiece issue for iOS.
- Fixed not able to start screenShare issue for android 14
Change Log :
- Upgraded internal dependencies
1.1.8 #
Release Date : 5th Apr 2024
Bug Fix :
- Fixed Rendering issue with Windows Platform.
1.1.7 #
Release Date : 27th Oct 2023
Change Log :
- Added metaData property associated with Participant to pass additional information.
- Added payload feature in PubSub to pass additional payload data.
- Added sendOnly feature to PubSub to Publish data for only Participants mentioned.
1.1.6 #
Release Date : 18th Sep 2023
Bug Fix :
- Fixed issues with mediaConstraints on the arm64-v8a and x86_64 architectures.[below Android version 10]
1.1.5 #
Release Date : 8th Aug 2023
Change Log :
- Internal improvements
Bug Fix :
- Fixed issues related to audio while toggling
1.1.4+1 #
Release Date : 27th July 2023
Bug Fix :
- Fixed audio issue with some devices
1.1.4 #
Release Date : 17th July 2023
Change Log :
- Upgraded internal dependencies
Bug Fix :
- Fixed mic state issue
- Fixed crash issue for below Android 10
- Fixed issue with screen share foreground service
1.1.3 #
Release Date : 2nd June 2023
Bug Fix :
- Fixed VideoSDK Stats issues with latest chrome browser
1.1.2 #
Release Date : 19th May 2023
Change Log :
- Added
screenSharefeature support for flutter Windows - Added
getScreenShareSources()method for Desktop Apps
1.1.1 #
Release Date : 17th May 2023
Change Log :
- Added
screenSharefeature support for flutter web & macOS - Added error code for screenShare permission denied error
Bug Fix :
- Fixed
onPresenterChangedevent on presenter-left
1.1.0 #
Release Date : 25th Apr 2023
Change Log :
- Added Beta support for Mac and Windows Platforms
- Added Beta support for Flutter Web Platform
1.0.13+1 #
Release Date : 14th Apr 2023
Bug Fix :
- Improved Audio Quality
- Improved SDK Performance
1.0.13 #
Release Date : 1st Apr 2023
Change Log :
HLS_PLAYABLEstate added in thehlsStateChanged.hlsUrlsgetter added in theRoom.
1.0.12 #
Release Date : 24rd Mar 2023
Change Log :
pin()added to pin a participant.unpin()added to unpin a participant.changeMode()allows the participant to switch mode betweenCONFERENCEandVIEWER.
1.0.11 #
Release Date : 03rd Mar 2023
Bug Fix :
- Fixed room not closing if
leave()called before meeting is joined. - Internal dependencies updated.
1.0.10 #
Release Date : 03rd Jan 2023
Change log :
- Added
getVideoStats(),getAudioStats()andgetShareStats()to get the statistics for the video, audio and share stream of a participant.
1.0.9 #
- Added support for custom audio and video tracks.
- Added events for recording, live streaming and HLS status.
- Added event for participant notifying the change in video quality.
- Added
startHls()andstopHls()methods. - Updated
startRecording()andstartLiveStream()to acceptconfigvalues for the feed. - Fixed
unable to start video or micafter turning them off.
1.0.8 #
- Added new flag
multiStreamforcreateRoom()
1.0.7 #
- Updated Gradle Version for Android
1.0.6 #
-
Added ErrorEvents for Room.
-
Fixed crash on
end(), when the room is not joined yet.
1.0.5 #
- Added support for iOS ScreenSharing.
1.0.4 #
-
Added support for changing audio device.
-
Fixed issue: PrintDevLog issue
1.0.3 #
- Fixed issue: VideoRenderer.onFirstFrameRendered implementation.
1.0.2 #
- Fixed issue on room ends.
- Provides reason on room left.
1.0.1 #
- Fixed change webcam issue
1.0.0 #
-
Renamed
Meetingclass toRoomclass. -
Changed import file
package:videosdk/rtc.darttopackage:videosdk/videosdk.dart -
Changed events:
Events.meetingJoinedtoEvents.roomJoinedEvents.meetingLefttoEvents.roomLeftEvents.webcamRequestedtoEvents.cameraRequestedChanged properties and methods forRoomclassselectedWebcamIdtoselectedCamIdenableWebcam()toenableCam()disableWebcam()todisableCam()changeWebcam()tochangeCam()getWebcams()togetCameras()Changed methods forParticipantclassenableMic()tounmuteMic()disableMic()tomuteMic()enableWebcam()toenableCam()disableWebcam()todisableCam()
-
Added
VideoSDK.createRoom()to create VideoSDK Rooms. Usejoin()to join VideoSDK Room. -
Added
defaultCameraIndexoption to select default camera forRoomClass. -
Added
micEnabledproperty forRoomClass. -
Added
camEnabledproperty forRoomClass. -
Added
end()method forRoomClass. -
Removed
MeetingBuilderWidget. -
Fixed the issue of joining room (meeting) multiple time.
-
Fixed issues related to resource consumption.
0.0.14 #
setViewport()added for participant webcam streams
0.0.13 #
- Added support for region wise baseUrls
- Added support for Android 12
- Added support for custom ice-servers
- Performance improvements
0.0.12 #
- iOS mic issue resolved
- entry request event handled
0.0.11 #
- Handle Entry Request
0.0.10 #
- PubSub Message
- custom participnatId
0.0.9 #
- Android Screen Share
- Events Enums
0.0.8 #
- Added fix for Mic / Webcam enable request
0.0.7 #
- Participant can pause or resume all video, audio and shareshare streams.
- Participant can set quality of video stream of other participant.
0.0.6 #
- Participant can request to turn on any participants' webcam or mic and can turn off the same
- Participant can remove another participant from meeting.
0.0.5 #
- livestream, recording, change webcam, active speaker and presenter indication, remote share streams and example code improved
0.0.4 #
- example app, pub description added.
0.0.3 #
- Installation steps added for android in
READMEfile.
0.0.2 #
- Exporting Meeting, Participant, Stream classes and MeetingBuilder widget.
0.0.1 #
- videosdk rtc meeting library initial release.