Files
Hiroshi Horie db929a36d7 Fix prejoin device dropdown crashes in example app (#966)
- Clear selected device when audio/video is disabled
- Reset selection if the device disappears on device change
- Prevents DropdownButton “exactly one item with value” crash


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
* Reset prejoin device selection when a previously chosen audio or video
device becomes unavailable.
* Keep device selection and preview tracks synchronized: auto-select a
device when enabling audio/video if none is selected, and stop/clear
preview tracks when disabling or when inputs are removed.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-27 16:33:49 +08:00
..
2025-08-27 20:59:08 +08:00
2025-12-12 18:57:51 +09:00
2025-07-25 19:19:30 +08:00
2025-12-12 18:57:51 +09:00
2023-02-06 12:48:11 +09:00
2021-08-04 11:33:06 -07:00
2025-02-23 10:59:28 +08:00

LiveKit Flutter Example

This app implements a video room using LiveKit's Flutter SDK. Designed to run for iOS, Android, Web, Mac, and Windows.

Quickstart

Run example:

flutter pub get
# Due to the inconvenience of typing on mobile devices, 
# you can autofill URL and TOKEN for first run in debug mode.
flutter run --dart-define=URL=wss://${LIVEKIT_SERVER_IP_OR_DOMAIN} --dart-define=TOKEN=${YOUR_TOKEN}

End-to-End Encryption (E2EE)

The example app supports end-to-end encryption for audio and video tracks. To enable E2EE:

  1. Toggle the "E2EE" switch in the connect screen
  2. Enter a shared key that will be used for encryption
  3. All participants must use the same shared key to communicate

For web support, you'll need to compile the E2EE web worker:

dart compile js web/e2ee.worker.dart -o example/web/e2ee.worker.dart.js -m

Note: All participants in the room must have E2EE enabled and use the same shared key to see and hear each other. If the keys don't match, participants won't be able to decode each other's audio and video.