1. Install LiveKit SDK
Include this package to your pubspec.yaml
---dependencies:livekit_client: <version>
2. Declare permissions
We require a set of permissions that need to be declared in your AppManifest.xml
. These are required by Flutter WebRTC, which we depend on.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.your.package"><uses-feature android:name="android.hardware.camera" /><uses-feature android:name="android.hardware.camera.autofocus" /><uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="android.permission.RECORD_AUDIO" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /><uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /><uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" /><uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" />...</manifest>
2. Connect to a room, publish video & audio
final roomOptions = RoomOptions(adaptiveStream: true,dynacast: true,// ... your room options)final room = Room();await room.connect(url, token, roomOptions: roomOptions);try {// video will fail when running in ios simulatorawait room.localParticipant.setCameraEnabled(true);} catch (error) {print('Could not publish video, error: $error');}await room.localParticipant.setMicrophoneEnabled(true);
3. Next Steps
- Set up a server to generate tokens for your app at runtime by following this guide: Generating Tokens.
- View the full SDK reference and GitHub repository for more documentation and examples.
Happy coding!