133 Commits

Author SHA1 Message Date
CloudWebRTC
e69bb1fe51 release: 2.5.0+hotfix.3 (#841)
Co-authored-by: Hiroshi Horie <548776+hiroshihorie@users.noreply.github.com>
2025-08-27 20:59:08 +08:00
Hiroshi Horie
1737c56276 Update protocol to v1.39.2 (#812)
* Gen

* format

* format

* Fix compile

* Import sorter

* Fixes
2025-06-25 00:50:00 +09:00
Hiroshi Horie
ebdf340e32 Fix example app compile (#807)
* macOS

* iOS
2025-06-16 20:20:18 +09:00
CloudWebRTC
921c7e3444 fix: fix bitrate display for remote video track. (#801) 2025-06-10 11:29:17 +08:00
CloudWebRTC
9615b37ed2 release: 2.4.7. (#787)
Some checks failed
Publish to pub.dev / publish (push) Has been cancelled
* release: 2.4.7.

* fix.

* update.

* fix.
2025-05-22 12:28:09 +08:00
CloudWebRTC
e861032986 fix issue 730. (#732) 2025-03-18 11:18:01 +08:00
CloudWebRTC
c05dc14be8 chore: remove bypassVoiceProcessing = true settings for connect page. (#693)
* chore: VideoRenderer improvements for iOS.

* cleanup.

* bump flutter-webrtc to 0.12.7.

* Update track.dart
2025-03-13 08:40:26 +08:00
CloudWebRTC
6365ec6766 feat: Visualizer for web. (#718)
* feat: Visualizer for web.

* wip.

* done.

* update.

* dart run import_sorter:main --no-comments.

* dart format.

* export Visualizer and add VisualizerOptions.

* support barCount configuration.

* Fixed bug for visualizer restart, removed setting enableVisualizer from RoomOptions.

* update.

* cleanup.

* rename.

* fix.

* fix.

* fix.
2025-03-05 11:36:31 +08:00
jezell
7c97a29c52 Support for WASM builds (#593)
* fix conditionals to support wasm

* remove js_util

* fix wasm blocking issues

* revert name change

* cleanup analysis warnings

* sort imports

* copy e2ee

* fix ref to dart_webrtc crypto

* fix compile with --wasm.

* import sorter.

* bump deps version.

* fix.

* revert changes.

* fix analyzer.

* fix

---------

Co-authored-by: Jesse Ezell <jesse.ezell@timu.com>
Co-authored-by: cloudwebrtc <duanweiwei1982@gmail.com>
2025-02-23 10:59:28 +08:00
Jacob Gelman
b782436467 fix: Properly handle broadcast capture state (#705)
* Define `BroadcastManager` class

Mirrors API of the same class from the native Swift SDK.

* Copy classes from native Swift SDK

Unneeded functionality has been omitted.

* Mark `LiveKitPlugin` as avalible on iOS 13 and higher

This is necesary to allow using the Combine framework. Since the minimum deployment target is iOS 13 according to the Podspec, this should not cause any issues.

* Implement RPC methods for broadcast manager

* Properly handle broadcast capture state

Same solution as implemented in PR #551 for the native Swift SDK.

* Use `broadcast-manual` device id

Sets the `deviceId` constraint to `broadcast-manual`, ensuring the broadcast picker isn't presented a second time when publishing a screen share track.

* Update example app

Removes boilerplate for iOS broadcast state management now handled internally by the library.

* Format

* Run import sorter
2025-02-18 18:03:11 +08:00
CloudWebRTC
f90275ffa4 fix: Improve speaker switching logic for iOS. (#692)
* fix: Improve speaker switching logic for iOS.

* update.

* fix.
2025-02-05 10:26:57 +08:00
CloudWebRTC
27d74538ce fix: bug for speakerPhone switch. (#672) 2024-12-30 17:15:27 +09:00
CloudWebRTC
a0b88b5aba feat: support FocusMode/ExposureMode for camera capture options. (#658)
* feat: support FocusMode/ExposureMode for camera capture options.

* bump version for flutter-webrtc.

* fix analyze.
2024-12-21 10:18:23 +08:00
CloudWebRTC
91bf10ce18 feat: audio visualizer. (#638)
* [wip] feat: audio visualizer.

* macos.

* wip.

* wip.

* wip.

* wip.

* wip.

* update.

* update.

* update.

* cleanup.

* bump version for flutter-webrtc.

* dart format.

* add third-party code license.

* fix.

* fix compiler warning.

* license.

* add enableVisualizer to RoomOptions.

* Added comments for enableVisualizer.
2024-12-08 21:45:26 +08:00
CloudWebRTC
385ae8b3b1 feat: support bypass voice processing. (#595)
* feat: support bypass voice processing.

* update.

* update pubspec.yaml.
2024-10-21 11:54:40 +08:00
啊o额iu鱼
42558f6832 Fix spelling error in method name: _checkPremissions to _checkPermissions (#605) 2024-10-21 11:21:44 +08:00
CloudWebRTC
cd05869ce3 fix: fix monitorStats not started when sender == null. (#606)
* fix: fix monitorStats not start when sender == null.

* set some log levels to lower.

* update.
2024-10-21 11:21:24 +08:00
CloudWebRTC
588e898eb0 fix: fix speaker switching behavior for android. (#604) 2024-10-16 12:59:42 +08:00
CloudWebRTC
519b25b691 fix: Optimize stats display (#602) 2024-10-09 09:41:07 +08:00
cloudwebrtc
1953be85ea fix: Optimize stats display 2024-10-07 19:58:19 +08:00
CloudWebRTC
0929ca9cb5 feat: support LocalTrackSubscribedEvent. (#578) 2024-08-27 08:34:38 +08:00
CloudWebRTC
c3f5ff2db9 feat: Prepare connection/region pinning. (#574)
* feat: Prepare connection/region pinning.

* dart run import_sorter.

* update.

* update.

* update.

* fix.

* update.

* update.

* fix scheme replace for url.

* update README.md

* fix.

* update.

* fix.
2024-08-23 11:36:00 +08:00
CloudWebRTC
05800e7599 fix: Fixed confusing room options causing settings to overwrite. (#570)
* fix: Fixed confusing room options causing settings to overwrite.

* if publishOptions.videoEncoding is not specified, use the default encoding

* fix.

* revert changes.

* Change VideoParameters.encoding to optional.

* update.

* Deprecate some APIs in Room.

* update.

* update.

* Update build.yaml

* update.

* Update build.yaml
2024-08-09 21:37:43 +08:00
CloudWebRTC
6fd73bba5d feat: Use PlatformView for video rendering on iOS to improve performance and reduce device heat. (#509)
* feat: Use PlatformView for iOS to improve performance and reduce device heat.

* Update pubspec.yaml

* update.

* Update pubspec.yaml

* update.

* update.

* update.

* update.
2024-08-02 09:34:43 +08:00
davidliu
479de66064 Update example to handle android screenshare permissions for API 34+ (#545) 2024-07-02 23:31:17 +09:00
CloudWebRTC
a478e23fdf feat: add Transcription Event. (#531)
* feat: add Transcription Event.

* dart format.

* remove deprecated API.

* print seg.text in example app.
2024-06-12 15:50:56 +08:00
CloudWebRTC
a734d6d412 fix: audio session control for ios. (#522)
* fix: audio session control for ios.

* Update pubspec.yaml
2024-06-04 09:28:53 +08:00
CloudWebRTC
e1fc67a30f Revert "fix iOS AirPods disconnection. (#518)" (#521)
This reverts commit eb6924d6fa.
2024-05-29 15:33:27 +08:00
CloudWebRTC
eb6924d6fa fix iOS AirPods disconnection. (#518) 2024-05-27 10:28:47 +08:00
CloudWebRTC
1fc66a8e61 Improvements for example app. (#515)
* Improvements for example app.

* update.
2024-05-20 22:09:37 +08:00
CloudWebRTC
4685806b2f fix flutter analyzer. (#510) 2024-05-06 10:20:47 +08:00
CloudWebRTC
c0b8076472 Prevent screen-sharing on flutter web mobile. (#486)
* Prevent screen-sharing on flutter web mobile.

* import sorter.
2024-03-28 09:44:14 +08:00
td
79271a594a chore: add screenshareAudioEnabled method (#473) 2024-02-29 18:33:03 +08:00
CloudWebRTC
5fd0a93a63 rename participant.{audio,video}Tracks => participant.{audio,video}TrackPublications. (#447) 2024-01-09 16:40:32 +08:00
CloudWebRTC
9a36368064 support sync streams (Protocol V10). (#445)
* support sync streams.

* add ProtocolVersion.v10.

* Update options.dart

* update.

* update.

* fix.

* revert changes for logger.

* revert changes.

* changes for firefox only.
2024-01-09 16:14:57 +08:00
CloudWebRTC
63be320073 Use enum VideoQuality/TrackType without exporting PBType. (#444)
* Use enum VideoQuality/TrackType without exporting PBType.

* update.
2024-01-08 19:25:15 +08:00
CloudWebRTC
668e22fd24 Rename some parameters. (#435)
* rename some parameters.

* fix.

* fix.

* update.

* mapping RemoteParticipant by identites.
2024-01-08 19:07:25 +08:00
CloudWebRTC
42ad127820 Improve reconnection events, add RoomAttemptReconnectEvent. (#439)
* try to fix issue #438.

* Improve reconnection events, add RoomAttemptReconnectEvent.

* update.

* cleanup.

* update.

* update.

* Update lib/src/core/signal_client.dart

Co-authored-by: David Zhao <dz@livekit.io>

* Update signal_client.dart

---------

Co-authored-by: David Zhao <dz@livekit.io>
2023-12-27 09:49:42 +08:00
CloudWebRTC
0fcc341450 Improve reconnect logic for websocket (#406)
* Capture possible exceptions when closing the room at any time and the internal process is busy.

* fix.

* imporve reconnect logic.

* fix canReconnect logic on SignalLeaveEvent.

* Monitor Connectivity changes and automatically reconnect.

* update.

* Improve PCs reconnection speed.

* support Manual subscription.

* update.

* simple grid view for test.

* update pubspec.

* Fixed handleParticipantDisconnect not emitting for existing partcicpant.

* Trigger full Reconnect when peerConnection Failed.

* update grid view.

* add checkIfDesposed.

* update.

* remove checkIfDisposed.

* fixed rendering exception.

* update.

* update.

* fix flutter analyze.

* fix reconnect test.

* update.

* update.

* revert changes for example app.

* update.

* Refactored reconnect logic to support connectivity/network change checking.

* update.

* update.

* cleanup.

* cleanup.

* sendLeave for room.disconnect.

* fix for web.

* fix for web.

* dart run import_sorter:main.

* update.

* fix.
2023-12-21 21:31:29 +08:00
CloudWebRTC
060ccda066 fix: Prevent ReplayKitChannel related code from being executed on non-iOS platforms. (#432) 2023-12-21 16:33:03 +08:00
CloudWebRTC
78d0ed28ff add prejoin page to example. (#322)
* WIP: add prejoin page to example.

* updte.

* update.

* update.

* add VideoParameters to prejoin page.

* fix bug for fast connect.

* update.

* update.

* remove FutureBuilder, It causes rendering flicker in flutter web.

* add back action for prejoin.

* add a flag to ensure the local track call stops at least once.
2023-12-14 15:32:52 +08:00
CloudWebRTC
1db143976b Simplify backupCodec setting. (#396)
* Simplify backupCodec setting.

* Update options.dart

* remove enableBackupCodec for VideoPublishOptions.

* update.

* Enabled backupcodec by defualt and disable it when E2EE is enabled.
2023-12-13 15:43:52 +08:00
Kai
7f5c0ba8a5 fix(screensharing): set setScreenShareEnabled when detect replaykit state changed (#398)
Co-authored-by: CloudWebRTC <duanweiwei1982@gmail.com>
2023-12-12 13:12:23 +08:00
CloudWebRTC
4012b538fd Fix errors caused by window close handler for web. (#420) 2023-12-01 09:40:27 +08:00
cloudwebrtc
61214023fa move flutter_window_close handler from sdk to the example app. 2023-11-30 12:48:50 +08:00
CloudWebRTC
74d7bcbbf0 Improve room/participants metadata update. (#397) 2023-11-16 18:05:10 +08:00
CloudWebRTC
c24053b87f Fix/unpublish screen audio when stop screen share (#389)
* fix: video rendering flickers for safari.

* update.

* fix: unpublish screen audio when stop screen share.

* revert changes.

* Listen to the MediaStreamTrack.onEnded to auto unpublishTrack.

* move event to internal.

* remove unused import.

* no mirror for screen share.

* bump version for flutter-webrtc.
2023-10-26 11:48:39 +08:00
CloudWebRTC
8b4f110922 Improvements for framecryptor (#363)
* update protocol.

* improve for framecryptor.

* dart format.

* update.

* no need to setup frame cryptor if encryptionType is None.

* Skip frame encryption for AV1,VP9.

* fix import sorter.

* bump version for flutter-webrtc.

* update default options for e2ee.

* release: 1.5.0.

* update.

* Downgrade some pub versions for maximum compatibility.
2023-09-20 19:59:01 +08:00
David Zhao
9339f92646 Bugfixes with multicodec simulcast (#349)
* Attempt to simplify example app

* * Fix crashes when backupCodec isn't set
* Avoid using default settings, instead use the track's publication options
* Correctly set SVC codec layers

* fix import_sorter.

* fix flutter analyzer.

---------

Co-authored-by: cloudwebrtc <duanweiwei1982@gmail.com>
2023-09-02 10:56:00 +08:00
CloudWebRTC
e72d204682 multi-codec simulcast. (#323)
* WIP: multi-codec simulast.

* update.

* update.

* update.

* update.

* fix: import sorter.

* update.

* update.

* update.

* update.

* support scalabilityMode for av1/vp9.

* update.

* update.

* multi-codec simulcast working correctly.

* Replace video track for multi-codec simulcast senders.

* Fixed multi-codec tracks being ignored when mute/unmute.

* update example.

* update.

* update.

* remove unused VideoSubscribeOptions.

* import sorter.

* Add Video Quality select menu.

* simulcast option for BackupVideoCodec and other improvements.

* add Backup codec selection menu.

* dart format.

* Update README.md

* Update pubspec.yaml

* update.

* update.

* update.

* Force enable dynacast if backupCodec is set.
2023-08-21 07:39:03 +08:00