Commit Graph
34 Commits
Author SHA1 Message Date
CloudWebRTCandGitHub 272484ce7e feat: Stats monitor for Track. (#290)
* feat: Stats monitor for Track.

* fix analyze.

* fix.

* import sorter.

* add monitor layer for example.

* update.

* update.

* fix import sorter.

* update.

* import sorter.

* fix typo for filename.

* revert changes for VideoPublishOptions.videoCodec.

* chore: improve code.

* update.
2023-06-01 16:15:37 +08:00
CloudWebRTCandGitHub 03a7672cf1 fix: default options for fast connect. (#289) 2023-05-22 12:17:34 +08:00
CloudWebRTCandGitHub 0b8aeeeba1 fix: audio play bug for ios safari. (#285)
* fix: audio play bug for ios safari. (WIP).

* chore: Repair and can pop up the playback prompt dialog box correctly.

* chore: add AudioContext to reduce playback delay.
2023-05-16 10:28:09 +08:00
CloudWebRTCandGitHub 4f697ca867 fix bluetooth device enumerate. (#281)
* fix bluetooth device enumerate.

* update README.md

* dart format.

* revert pubspec.yaml.

* fix analyzer.
2023-05-11 17:29:33 +08:00
26947e96d6 e2ee. (#226)
* chore: e2ee.

* update.

* update.

* update.

* update.

* chore: Use feat/frame-encryption branch of flutter-webrtc.

* chore: Add E2EEKEY defines for dart environment, and e2ee switch.

* Add encodedInsertableStreams to RTCConfiguration.

* update.

* feat: Add e2ee indicator for Participant.

* feat: add e2ee worker js for flutter web.

* dart format.

* remove unused file.

* fix flutter analyze .

* update.

* update.

* add: indicate for decryption failure, and string key.

* remove .lock files.

* update.

* update.

* update e2ee.worker for web.

* feat: support setCodecPreferences.

* state TrackE2EEStateEvent.

* fix wrong import interface from dart_webrtc.

* update.

* update.

* update.

* update.

* update pubspec.lock.

* chore: update protocol and add EncryptionType for Participant.

* Update lib/src/e2ee/options.dart

Co-authored-by: Théo Monnom <[email protected]>

* fix typo.

* revert changes for internal import.

* Add _cleanUp() for previous room.

* Add e2ee supports detection method for native/web.

* Remove redundant overriding methods.

* dart format.

* Add e2ee.worker code and deployment docs.

* chore: remove duplicate words.

* chore: using Pbkdf2 derive the key.

* Update pubspec.yaml

* fix e2ee for safari.

* fix key length.

* update e2ee.worker.dart.js.

* fix.

* update proto.

* update.

* chore: add simulate for rachetKey.

* update.

* chore: key ratchet for flutter web.

* update.

* update.

* update.

* chore: key ratchet export for web.

* bump version for xframeworks.

* update.

* chore: some changes for key safety ratcheting.

* update.

* fix typo.

* update.

* rename.

* magic bytes for web.

* bump version for flutter-webrtc.

* fix analyzer.

---------

Co-authored-by: Théo Monnom <[email protected]>
2023-04-27 17:54:32 +08:00
CloudWebRTCandGitHub bc4df105fa feat: support metadata update. (#259) 2023-03-27 09:19:52 +08:00
CloudWebRTCandGitHub b63d4bde8a Room recording event (#252)
* feat: Add room reocording reminder.

* chore: comment for recording event.
2023-03-08 13:09:04 +08:00
CloudWebRTCandGitHub c74e6777d8 feat: Forward leave reason of disconnected events. (#250)
* feat: Forward leave reason of disconnected events.

* fix analyze.

* chore: print room disconnect reason when event.reason != null.

* chore: rename InternalDisconnectReason => ClientDisconnectReason.
2023-03-07 17:54:18 +08:00
CloudWebRTCandGitHub a554d92543 screen sharing for desktop. (#135)
* screen sharing for desktop (WIP).

* use git repo for testing.

* update.

* Add sourceId/frameRate to ScreenShareCaptureOptions.

* Compatible with flutter web.

* Rendering of camera and screenshare video tracks at same time.

* Remote screen sharing is shown first, and fixed sub/unsub button for screenshare widget.

* resolved conflict.

* modify flutter-webrtc to pub version.

* remove unused import.

* chore: Common params for Camera and ScreenShare.
2022-08-02 11:17:09 +08:00
CloudWebRTCandGitHub 3d8bf96651 protocol 8. (#134)
* protocol 8.

* add FastConnectOptions.

* update.

* fix.

* Deprecated the top connect method.

* Add fast connect button in example.

* Create a Listener before connecting.

* Force protocol-v7 for deprecated APIs.

* remove commented out line.

* relative path import.

* update.
2022-07-11 19:54:08 +08:00
davidliuandGitHub 531cbd1676 iOS screen share (#133) 2022-07-10 22:43:20 +09:00
CloudWebRTCandGitHub 9ed0c534be There is a bug in defaultValue in fromEnvironment, so replace the code. (#125) 2022-06-03 09:12:04 +08:00
CloudWebRTCandGitHub 741bead18c Autofill URL and TOKEN in debug mode. (#123)
* Autofill URL and TOKEN in debug mode.

* dart format.

* Set ENV priority higher than prefs.
2022-06-02 10:57:09 +08:00
Hiroshi Horie 566937f630 compatibility with flutter 3.0 2022-05-15 20:56:20 +09:00
Hiroshi Horie 910efe3d64 update protos 2022-04-03 00:31:06 +09:00
Hiroshi Horie 91b604a191 adaptiveStream and dynacast option in example 2022-04-03 00:18:28 +09:00
Hiroshi Horie c205660bbf adaptiveStream and dynacast on in example 2022-03-04 22:27:05 +09:00
Hiroshi Horie 7e1164a74c fix imports 2021-12-10 23:14:21 +07:00
Hiroshi Horie a706a5e1fb organize ConnectOptions RoomOptions RTCConfiguration 2021-12-10 00:23:45 +07:00
Hiroshi HorieandGitHub 0f5a758cd4 Create room without connecting (#49)
* initial commit

* fix example compile

* format

* clean up

* fix check

* missing import
2021-12-07 17:02:58 +07:00
Hiroshi Horie 64a243a312 update example (no casting) 2021-12-02 14:21:41 +07:00
David ZhaoandGitHub 66dbc94c1a Use high level track APIs in example app & docs (#36) 2021-11-26 23:51:37 -08:00
Hiroshi Horie a0a9acc9d9 example app: allow scroll in connect page 2021-10-28 02:14:52 +09:00
Hiroshi HorieandGitHub 6240457333 Option to control DTX (#25)
* protocol 4

* default to v4

* mediaStreamTrack.enabled

* track start

* private constructor

* remote audio/video tracks

* log sdp

* organize imports

* dtx option (default true)
2021-10-26 02:53:34 +09:00
Hiroshi Horie bf1322642b example app: change switch design 2021-10-25 02:33:53 +09:00
Hiroshi Horie d065c2eb97 example app design update & show active speaker 2021-10-25 02:08:26 +09:00
Hiroshi HorieandGitHub 6bba6b4006 Improve example for better feature testing (#21)
* fixed

* format

* set track to null

* rearrange

* toggle subscribed

* clean

* `RemoteTrackPublicationMenuWidget` for mute/unmute subscribe/unsubscribe
2021-10-21 21:11:25 +09:00
Hiroshi Horie 666380d39b clean up 2021-10-20 21:16:13 +09:00
Hiroshi HorieandGitHub 48e03b84cb Create android & web plugins (#15)
* create android & web plugins

* apply `flutter format .`
2021-10-02 15:20:41 +09:00
Hiroshi HorieandGitHub 001f688729 Better audio management (#10)
* add audio_session package

* `AudioManager` initial design

* try to integrate audio manager

* configure audio session

* `DisposeAware`

disposing if already published causes exception.

* organize

* guard flutter_webrtc calls

* websocket async fix

* use `ConnectionState` instead of `_isClosed` and `isReconnecting`

* change create audio track defaults

* update protos

* protocol 3 speaker updates

* fix exception

* emit `RoomDisconnectedEvent` only once

* fix exception

* keep track of local / remote audio tracks

* explicit types

* manage track state

* re-structure audio management

* change defaults

* unpublish all

* use experimental build

* change defaults

* configuring is optional

* call native `RTCAudioSession.setConfiguration`

* defaults adjustment

* iOS only for now

* use lib 92.4515.07

* clean up

* revert audio options for now

* remove pod source

* rename apple related audio

* `createListener` method

* organize native audio

* `SpeakingChangedEvent` only on `Participant`

* refactoring

* fix ios compile

* fix configure audio only for iOS logic

* minor fix & clean up

* change dispose logic

* format protos

* fix unpublishTrack

* `createListener` into a mixin

* simplify

* use flutter_webrtc master

* unpublish for example

* update ios icon

* android icon

* web icon

* favicon
2021-10-01 02:47:18 +09:00
Hiroshi HorieandGitHub 4960459c07 Explicit type for listeners (#11) 2021-09-28 15:31:54 +09:00
Hiroshi HorieandGitHub 6445b8d2a8 Switch to new event system (#9)
* `SignalEvents` and `synchronized` mode for `EventsListenable`

* cascade syntax

* clean up

* `RoomEvents`

* `ParticipantEvents`

* all events implemented

* make it compile with M1 macs

* dispose logic

* cleaner connect logic

* ask to publish

* fix initial EngineTrackAddedEvent glitch

* fix unpublishTrack bug

* clean up

* better events docs

* organize event types

* clean up

* cleaner wait logic

* wait for event instead of using Completer

* notifyListeners
2021-09-24 23:37:26 +09:00
Hiroshi HorieandGitHub f4bd82a919 Subscriber as primary (#8)
* Update protos

* Signal client

* Improve transport

* First implementation

* Fix publish

* Update `PCTransport` for debounce negotiation

* debounce func

* reconnect & events

* Update debounce func

* engine events

* make sure events don't emit after dispose

* prefix flutter_webrtc

* Cleaner `iceServers` update

* don't mutate user provided params

* fix tests

* event manager

* Fix: `Room.onDisconnected` gets fired multiple times

* data publish in example

* cleaner logic

* safer events

* un-prefix with LK

* organize imports

* Clean up

* remove `Tuple`

* `EventsEmitter` can now be directly listened to

`EventsEmitter` extends `EventsListenable`
2021-09-18 00:10:16 +09:00
Hiroshi HorieandGitHub 50f56c5e1e Simulcast, Screen sharing & Various improvements (#4)
* Respect `RTCIceTransportPolicy` enum and organize

* Simplify syntax where possible etc.

* Combine `VideoPreset` and `VideoPresets`

* Default values for `ConnectOptions`

* Build URI instead of String manipulation

* Slight modifications to Exception

* `LiveKitTheme` for example

* `VideoEncoding` class

* Organize imports

* First simulcast implementation

* Remove unnecessary try-catches

* Update Android settings

* Remember uri and token

* example improvements

* `fit` parameter for VideoTrackRenderer

* Simulcast option for example

* Pass `defaultPublishOptions`

* Show only `VideoQuality`

* Pass tests

* Better buildUri logic

* Named parameter to positional

* Explicit imports

* `VideoParameter` instead of `VideoPreset`

* Use `mediaTrack.getSettings` when possible

* Safer dispose logic

* Safer `PCTransport`

Update transport.dart

* Synchronized events for `SignalClient`

* Use logger instead of print

* Make example compile for iOS

* First screen share implementation

* Make example work with screen share

* Example improvement

* Code optimization

* Don't depend on web_socket_channel

* Fix: Unpublish track bug

* Show participant mute state & identity

* Update protos

* Remote mute/unmute

* iOS Background mode

* Separate `createCameraTrack` and `createScreenTrack`

* Clean up

* PB fix

* format

* Fix analyzer warning

* Android clean up

* Update README.md

* Clean up
2021-09-11 03:14:14 +09:00