medea_flutter_webrtc 0.16.1
medea_flutter_webrtc: ^0.16.1 copied to clipboard
Flutter WebRTC plugin for Android/iOS/macOS/Linux/Windows/Web, based on GoogleWebRTC, designed for and used in Medea Jason WebRTC client.
medea_flutter_webrtc changelog #
All user visible changes to this project will be documented in this file. This project uses Semantic Versioning 2.0.0.
0.16.1 · 2026-01-05 #
0.16.0 · 2025-12-18 #
BC Breaks #
- Bumped up minimum supported Flutter version to 3.38. (#250, #265)
- Bumped up minimum supported Dart version to 3.10. (#250, #265)
- Bumped up minimum supported Windows deployment target to 10 (build 20348). (#245)
- Bumped up minimum supported iOS deployment target to 15. (#254)
- Provide real device IDs in
MediaDeviceInfo.idinstead of hardcoded kind based values on Android SDK >= 31. (#257) - Reworked RTC stats to align with Identifiers for WebRTC's Statistics API specification (only partial support for desktop platforms). (#270)
Added #
- Support for system audio capturing on Windows and macOS via
getDisplayMedia(). (#245, #244, #263) systemAudioCaptureIsAvailable()for probing system audio capturing support. (#263))- Capturing audio focus when in call on Android. (#255)
MediaDeviceInfo.audioDeviceKindfield andAudioDeviceKindenum to reflect audio device kind. (#257)
Changed #
- Upgraded libwebrtc to 143.0.7499.109 version. (#256, #254, #248, #260, #264, #269, b3a72c52)
- Removed camera permission request in
enumerateDevices()on Android. (#258) AVAudioSessionis now captured only when there is at least onePeerConnectionor local audio track, and released when there are none. (#268)
Fixed #
WebVideoRendererreporting 0x0 dimensions. (#252)RtpSenderbeing disposed beforeRtpTransceivercausingreplaceTrack()calls doing nothing on Android. (#255)OnDeviceChangeCallbacknot being called on wired headset connect/disconnect on Android. (#255)- Permission request on Android hanging indefinitely once is interrupted. (#258)
0.15.1 · 2025-07-16 #
0.15.0 · 2025-06-24 #
0.14.0 · 2025-05-15 #
Added #
- Support for changing audio processing settings for local audio
MediaStreamTracks on desktop: (#197)MediaStreamTrack.isAudioProcessingAvailablemethod checking whether audio processing controls are available for local audioMediaStreamTrack.MediaStreamTrack.setNoiseSuppressionEnabledmethod enabling/disabling noise suppression for local audioMediaStreamTrack.MediaStreamTrack.setNoiseSuppressionLevelmethod configuring noise suppression aggressiveness for local audioMediaStreamTrack.MediaStreamTrack.setHighPassFilterEnabledmethod enabling/disabling high-pass filter for local audioMediaStreamTrack.MediaStreamTrack.setEchoCancellationEnabledmethod enabling/disabling acoustic echo cancellation for local audioMediaStreamTrack.MediaStreamTrack.setAutoGainControlEnabledmethod enabling/disabling auto gain control for local audioMediaStreamTrack.AudioConstraints.noiseSuppression,AudioConstraints.noiseSuppressionLevel,AudioConstraints.highPassFilter,AudioConstraints.echoCancellationfields to control audio processing when creating local audioMediaStreamTrack.
- Support for getting audio processing settings for local audio
MediaStreamTracks on desktop: (#199)MediaStreamTrack.isNoiseSuppressionEnabledmethod checking whether noise suppression is enabled for local audioMediaStreamTrack.MediaStreamTrack.getNoiseSuppressionLevelmethod returning noise suppression level of local audioMediaStreamTrack.MediaStreamTrack.isHighPassFilterEnabledmethod checking whether high pass filter is enabled for local audioMediaStreamTrack.MediaStreamTrack.isEchoCancellationEnabledmethod checking whether acoustic echo cancellation is enabled for local audioMediaStreamTrack.MediaStreamTrack.isAutoGainControlEnabledmethod checking whether automatic gain control is enabled for local audioMediaStreamTrack.
Changed #
- Upgraded OpenAL library to 1.24.3 version. (#193)
- Upgraded libwebrtc to 136.0.7103.92 version. (#196, 170d6d8c)
- Increased default noise suppression level for local audio
MediaStreamTracks on desktop frommoderatetoveryHigh. (#197)
Fixed #
0.13.3 · 2025-03-27 #
0.13.0 · 2025-03-07 #
Fixed #
MediaStreamTrack.onEndedcallback not firing for local tracks when corresponding media input device is disconnected on desktop platforms. (#189)
Changed #
- Upgraded
flutter_rust_bridgecrate to 2.8.0 version. (#185) - Upgraded libwebrtc to 133.0.6943.141 version. (#186)
0.12.1 · 2025-01-23 #
0.12.0 · 2024-12-16 #
0.11.2 · 2024-10-28 #
0.10.0 · 2024-08-01 #
Added #
PeerConnection.videoDecoders()andPeerConnection.videoEncoders()methods enumerating available video codecs and their capability of hardware acceleration. (#144)- Support for multiple input audio devices usage at one time on desktop platforms. (#145)
MediaStreamTrack.isAudioLevelAvailablefunction andMediaStreamTrack.onAudioLevelChangedcallback for detecting input audio level changes of localMediaStreamTrack. (#149)RtpSender.getCapabilities()andRtpTransceiver.setCodecPreferences()operating byRtpCapabilities,RtpHeaderExtensionCapabilityandRtpCodecCapability. (#137)AudioConstraints.autoGainControlfield. (#156)
Changed #
- Upgraded libwebrtc to 127.0.6533.72 version. (#155, #162, #166)
- Disable H264 software encoders and decoders. (#153)
- Migrated from
dart:htmltopackage:web. (#164)
Fixed #
- Double free when macOS video renderer is reused for different tracks. (#139)
- Swift exceptions not being propagated to Dart side on iOS. (#142)
- Segfault when switching to external camera on macOS. (#142)
- Unexpected audio category on
setOutputAudioIdcall on iOS. (#146) - Race condition bug on
setOutputAudioIdcall on Android. (#146) - Race condition bug on input/output device switch on desktop platforms. (#151)
RtpReceiveruse after free on Android. (#165)
0.9.0 · 2023-12-07 #
Added #
RtpTransceiverInit.sendEncodingsfield withSendEncodingParameters. (#125)MediaStreamTrack.height()andMediaStreamTrack.width()methods. (#129)RtpParametersclass,RtpSender.getParameters()andRtpSender.setParameters()methods. (#135)VideoRenderer.onCanPlaycallback. (#134)
Changed #
- Refactor Audio Device Module to use OpenAL library for playout and recording. (#117, #136)
- Fire
onDeviceChangecallback whenever an output audio device is changed in system settings on desktop platforms. (#119, #120) - Upgraded libwebrtc to 118.0.5993.88 version. (#134)
VideoRenderer.widthandVideoRenderer.heightnow take rotation into account. (#124)
Fixed #
0.8.0 · 2023-05-19 #
Added #
MediaStreamTrack.facingModegetter. (#109)MediaStreamTrack.stategetter. (#69)MediaStreamTrack.onEndedcallback on Windows platform. (#10, #35, #37)MediaStreamTrack.setEnabledmethod. (#28)- Flutter-side video rotation for all native platforms. (#103)
onDeviceChangecallback. (#26, #42, #54, #101)- Linux platform implementation. (#10, #18, #19, #34, #50, #86)
getDisplayMediamethod. (#10, #20)enumerateDisplaysmethod. (#85)setOutputAudioIdmethod. (#39, #98)microphoneVolumeIsAvailable,microphoneVolume,setMicrophoneVolumemethods. (#57)AudioRendererobject. (#45)getStatsmethod. (#88, #91)enableFakeMediamethod. (#65, #71, #82)- Atomic
RtpTransceiver.setRecvandRtpTransceiver.setSendmethods. (#73) - Way to disable context menu over
RTCVideoViewon Web platform. (#9)
Fixed #
WebVideoRenderernot applyingmirrorandenableContextMenuvalues. (#62)- Unsynchronized renderers after Java
VideoTrackupdate. (#76) WebAudioRenderernot removing its audio element. (#46)- Mirroring issues with
RTCVideoRendererWeb. (#15, #14) - Initial video rendering glitch on macOS platform. (#102)
- Bluetooth headset detection on Android platform. (#78)
Changed #
- Fully rewrote Android platform implementation. (#6, #31, #48, #75, #77, #80)
- Fully rewrote iOS platform implementation. (#89, #92, #93, #94, #100)