Agora RTC Engine는 모바일 및 데스크톱 애플리케이션에 실시간 비디오 통화 및 라이브 비디오 스트리밍을 원활하게 통합할 수 있는 Flutter 플러그인입니다. 최소한의 코드로 개발자는 Agora의 확장 가능한 인프라를 기반으로 한 고품질 오디오 및 비디오 통신 기능을 쉽게 추가할 수 있습니다. 이 플러그인은 Android, iOS, Web, macOS, Windows 등 여러 플랫폼을 지원하여 크로스플랫폼 실시간 앱에 이상적입니다. 낮은 지연 시간과 고해상도 미디어 전송을 제공하며, 화면 공유 및 사용자 정의 오디오 처리와 같은 고급 기능도 지원합니다.
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.