medea_flutter_webrtc 0.15.0
medea_flutter_webrtc: ^0.15.0 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.15.0 · 2025-06-24 #
BC Breaks #
Added #
setupForegroundService()
function for maintaining camera/microphone/audio when application is in background on Android. (#204)
Changed #
- Upgraded libwebrtc to 137.0.7151.119 version. (#203, bd017e9a)
- Upgraded
flutter_rust_bridge
crate to 2.10.0 version. (#201)
Fixed #
- Resources cleanup when
medea_flutter_webrtc
Flutter plugin is detached on Android. (#202)
0.14.0 · 2025-05-15 #
Added #
- Support for changing audio processing settings for local audio
MediaStreamTrack
s on desktop: (#197)MediaStreamTrack.isAudioProcessingAvailable
method checking whether audio processing controls are available for local audioMediaStreamTrack
.MediaStreamTrack.setNoiseSuppressionEnabled
method enabling/disabling noise suppression for local audioMediaStreamTrack
.MediaStreamTrack.setNoiseSuppressionLevel
method configuring noise suppression aggressiveness for local audioMediaStreamTrack
.MediaStreamTrack.setHighPassFilterEnabled
method enabling/disabling high-pass filter for local audioMediaStreamTrack
.MediaStreamTrack.setEchoCancellationEnabled
method enabling/disabling acoustic echo cancellation for local audioMediaStreamTrack
.MediaStreamTrack.setAutoGainControlEnabled
method enabling/disabling auto gain control for local audioMediaStreamTrack
.AudioConstraints.noiseSuppression
,AudioConstraints.noiseSuppressionLevel
,AudioConstraints.highPassFilter
,AudioConstraints.echoCancellation
fields to control audio processing when creating local audioMediaStreamTrack
.
- Support for getting audio processing settings for local audio
MediaStreamTrack
s on desktop: (#199)MediaStreamTrack.isNoiseSuppressionEnabled
method checking whether noise suppression is enabled for local audioMediaStreamTrack
.MediaStreamTrack.getNoiseSuppressionLevel
method returning noise suppression level of local audioMediaStreamTrack
.MediaStreamTrack.isHighPassFilterEnabled
method checking whether high pass filter is enabled for local audioMediaStreamTrack
.MediaStreamTrack.isEchoCancellationEnabled
method checking whether acoustic echo cancellation is enabled for local audioMediaStreamTrack
.MediaStreamTrack.isAutoGainControlEnabled
method 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
MediaStreamTrack
s on desktop frommoderate
toveryHigh
. (#197)
Fixed #
- Audio processing not working properly on multiple local audio sources. (#195)
- Default device video resolution to 640x480. (#198)
0.13.3 · 2025-03-27 #
Changed #
- Made number of utilized threads not depending on CPUs count. (#192)
- Upgraded
flutter_rust_bridge
crate to 2.9.0 version. (#192)
0.13.2 · 2025-03-18 #
Changed #
- Upgraded libwebrtc to 134.0.6998.165 version. (24750229)
0.13.1 · 2025-03-18 #
Changed #
- Upgraded libwebrtc to 134.0.6998.88 version. (#190, bb9df198)
0.13.0 · 2025-03-07 #
Fixed #
MediaStreamTrack.onEnded
callback not firing for local tracks when corresponding media input device is disconnected on desktop platforms. (#189)
Changed #
- Upgraded
flutter_rust_bridge
crate to 2.8.0 version. (#185) - Upgraded libwebrtc to 133.0.6943.141 version. (#186)
0.12.2 · 2025-02-03 #
Changed #
- Upgraded libwebrtc to 132.0.6834.159 version. (0708b1fc)
0.12.1 · 2025-01-23 #
Changed #
- Upgraded OpenAL library to 1.24.2 version. (494eb2fa)
- Upgraded libwebrtc to 132.0.6834.83 version. (#184)
0.12.0 · 2024-12-16 #
Changed #
- Upgraded OpenAL library to 1.24.1 version. (#182, #181)
- Upgraded libwebrtc to 131.0.6778.139 version. (#180, cec4e41e)
- Upgraded
flutter_rust_bridge
crate to 2.7.0 version. (#183)
0.11.2 · 2024-10-28 #
Added #
RtpReceiver.getCapabilities()
method. (#173)
Changed #
- Upgraded
flutter_rust_bridge
crate to 2.4.0 version. (#172) - Upgraded libwebrtc to 130.0.6723.69 version. (#176, #177)
Fixed #
0.11.1 · 2024-09-11 #
Changed #
- Upgraded libwebrtc to 128.0.6613.119 version. (#170)
0.11.0 · 2024-08-26 #
Changed #
- Upgraded
flutter_rust_bridge
crate to 2.2.0 version. (#167)
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.isAudioLevelAvailable
function andMediaStreamTrack.onAudioLevelChanged
callback for detecting input audio level changes of localMediaStreamTrack
. (#149)RtpSender.getCapabilities()
andRtpTransceiver.setCodecPreferences()
operating byRtpCapabilities
,RtpHeaderExtensionCapability
andRtpCodecCapability
. (#137)AudioConstraints.autoGainControl
field. (#156)
Changed #
- Upgraded libwebrtc to 127.0.6533.72 version. (#155, #162, #166)
- Disable H264 software encoders and decoders. (#153)
- Migrated from
dart:html
topackage: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
setOutputAudioId
call on iOS. (#146) - Race condition bug on
setOutputAudioId
call on Android. (#146) - Race condition bug on input/output device switch on desktop platforms. (#151)
RtpReceiver
use after free on Android. (#165)
0.9.0 · 2023-12-07 #
Added #
RtpTransceiverInit.sendEncodings
field withSendEncodingParameters
. (#125)MediaStreamTrack.height()
andMediaStreamTrack.width()
methods. (#129)RtpParameters
class,RtpSender.getParameters()
andRtpSender.setParameters()
methods. (#135)VideoRenderer.onCanPlay
callback. (#134)
Changed #
- Refactor Audio Device Module to use OpenAL library for playout and recording. (#117, #136)
- Fire
onDeviceChange
callback 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.width
andVideoRenderer.height
now take rotation into account. (#124)
Fixed #
- Video renderer stretching a picture after rotation. (#124, #134)
- Screen sharing leaking memory on macOS. (#133)
0.8.2 · 2023-06-09 #
Changed #
- Upgraded libwebrtc to 112.0.5615.165 version. (#113)
0.8.1 · 2023-05-29 #
Fixed #
- FFI bridge initialization on desktop platforms. (#116)
0.8.0 · 2023-05-19 #
Added #
MediaStreamTrack.facingMode
getter. (#109)MediaStreamTrack.state
getter. (#69)MediaStreamTrack.onEnded
callback on Windows platform. (#10, #35, #37)MediaStreamTrack.setEnabled
method. (#28)- Flutter-side video rotation for all native platforms. (#103)
onDeviceChange
callback. (#26, #42, #54, #101)- Linux platform implementation. (#10, #18, #19, #34, #50, #86)
getDisplayMedia
method. (#10, #20)enumerateDisplays
method. (#85)setOutputAudioId
method. (#39, #98)microphoneVolumeIsAvailable
,microphoneVolume
,setMicrophoneVolume
methods. (#57)AudioRenderer
object. (#45)getStats
method. (#88, #91)enableFakeMedia
method. (#65, #71, #82)- Atomic
RtpTransceiver.setRecv
andRtpTransceiver.setSend
methods. (#73) - Way to disable context menu over
RTCVideoView
on Web platform. (#9)
Fixed #
WebVideoRenderer
not applyingmirror
andenableContextMenu
values. (#62)- Unsynchronized renderers after Java
VideoTrack
update. (#76) WebAudioRenderer
not 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)