Package selection guidance compiled from public package information, community data, and project usage.
Agora RTC Engine is a Flutter plugin that enables seamless integration of real-time video calling and live video streaming into mobile and desktop applications. With minimal code, developers can add high-quality audio and video communication features powered by Agora's scalable infrastructure. The plugin supports multiple platforms including Android, iOS, Web, macOS, and Windows, making it ideal for cross-platform real-time apps. It offers low-latency, high-definition media transmission with support for advanced features like screen sharing and custom audio processing.
Use cases
Video conferencing apps
Live streaming platforms
Remote tutoring services
Virtual event hosting
Real-time customer support
Key features
Low-latency video and audio
Cross-platform compatibility
Screen sharing support
Easy integration with few lines of code
Scalable real-time communication
Suitable for
Developers building real-time communication apps
Educational platforms requiring video interaction
Enterprise collaboration tools
Live content creators
Apps needing secure peer-to-peer or server-based streaming
Considerations
Requires Agora account and app ID
Network bandwidth affects call quality
Web support may have limited features compared to native platforms
Additional configuration needed for production deployment
Original README
Original README snapshot from the linked source repository. Visit the repository for the latest content.
Agora.io provides building blocks for you to add real-time voice and video communications through a simple and powerful SDK. You can integrate the Agora SDK to enable real-time communications in your own application quickly.
NOTE: The main branch is major update base on the Agora Native SDK 4.x, which introduces some break changes. previous releases please see the following branches(the version < 6.0.0):
To use this plugin, please add agora_rtc_engine as a dependency to
your pubspec.yaml file.
Getting Started
Get some basic and advanced examples from the example folder.
Privacy Permission
Agora Video SDK requires Camera and Microphone permission to start a video call.
Android
For the latest permission settings, please refer to the documentation at https://docs.agora.io/en/video-calling/get-started/get-started-sdk?platform=android#project-setup
<uses-permissionandroid:name="android.permission.INTERNET"/><uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/><uses-permissionandroid:name="android.permission.RECORD_AUDIO" /><uses-permissionandroid:name="android.permission.CAMERA" /><uses-permissionandroid:name="android.permission.MODIFY_AUDIO_SETTINGS" /><uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE" /><uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE" /><!-- The Agora SDK requires Bluetooth permissions in case users are using Bluetooth devices. --><uses-permissionandroid:name="android.permission.BLUETOOTH" /><!-- For Android 12 and above devices, the following permission is also required. --><uses-permissionandroid:name="android.permission.BLUETOOTH_CONNECT" />
iOS & macOS
For the latest permission settings, please refer to the documentation at https://docs.agora.io/en/video-calling/get-started/get-started-sdk?platform=ios#project-setup
Open the Info.plist and add:
Privacy - Microphone Usage Description,and add some description into the Value column.
Privacy - Camera Usage Description, and add some description into the Value column.
Web (alpha)
The agora_rtc_engine for web is currently in alpha stage, and the documentation is incomplete and it has only been tested on desktop web at this time.
The agora_rtc_engine web is built on top of iris_web, a wrapper for the Agora Web SDK 4.x. This helps align the Native SDK (Android/iOS/macOS/Windows) APIs through the Agora Web SDK 4.x. Please note that the agora_rtc_engine web utilizes the Agora Web SDK 4.x underneath, so only a subset of the Native SDK APIs can be implemented on the web. If the APIs return AgoraRtcException with a -4 error code, this means these APIs are not supported at this time.
Download the iris_web(see the link below) artifact and include it as a <script /> tag in your <your-project>/web/index.html file. For example:
Interact with Agora RTC Native SDK(Android/iOS only)
NOTE: This feature requires agora_rtc_engine >= 6.3.0
Due to performance constraints, direct implementation of advanced features like video and audio raw data processing is not currently feasible in Flutter side.
We enable you to create an RtcEngine within Flutter by utilizing the native handle from the RtcEngine(Android) or AgoraRtcEngineKit(iOS) of the Agora RTC Native SDK. This approach enables your application to directly utilize the advanced features of the Agora RTC Native SDK through the agora_rtc_engine package, bridging the gap between native capabilities and Flutter's environment.