Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/agoraio-extensions/agora-flutter-sdk
Flutter plugin of Agora RTC SDK for Android/iOS/macOS/Windows
https://github.com/agoraio-extensions/agora-flutter-sdk
agora android flutter ios macos rtc sdk video windows
Last synced: 27 days ago
JSON representation
Flutter plugin of Agora RTC SDK for Android/iOS/macOS/Windows
- Host: GitHub
- URL: https://github.com/agoraio-extensions/agora-flutter-sdk
- Owner: AgoraIO-Extensions
- License: mit
- Created: 2018-12-20T09:45:33.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2024-07-12T08:27:13.000Z (4 months ago)
- Last Synced: 2024-07-12T10:42:18.189Z (4 months ago)
- Topics: agora, android, flutter, ios, macos, rtc, sdk, video, windows
- Language: Dart
- Homepage: https://pub.dev/packages/agora_rtc_engine
- Size: 17.8 MB
- Stars: 721
- Watchers: 58
- Forks: 373
- Open Issues: 42
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# agora_rtc_engine
> This Flutter plugin is a wrapper for [Agora Video SDK](https://docs.agora.io/en/Interactive%20Broadcast/product_live?platform=All%20Platforms)
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):
>
> - [5.x](https://github.com/AgoraIO-Extensions/Agora-Flutter-SDK/tree/master)## Usage
To use this plugin, please add `agora_rtc_engine` as a dependency to
your [pubspec.yaml](https://flutter.dev/docs/development/packages-and-plugins/using-packages) file.## Getting Started
* Get some basic and advanced examples from the [example](example/lib/examples) 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-setupSee the required device permissions from
the [AndroidManifest.xml](android/src/main/AndroidManifest.xml) file.```xml
```
#### 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-setupOpen 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](https://github.com/AgoraIO-Extensions/iris_web), a wrapper for the [Agora Web SDK 4.x](https://api-ref.agora.io/en/video-sdk/web/4.x/index.html). This helps align the Native SDK (Android/iOS/macOS/Windows) APIs through the [Agora Web SDK 4.x](https://api-ref.agora.io/en/video-sdk/web/4.x/index.html). Please note that the agora_rtc_engine web utilizes the [Agora Web SDK 4.x](https://api-ref.agora.io/en/video-sdk/web/4.x/index.html) 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 `` tag in your `/web/index.html` file. For example:
**Project structure**
```|__web
|__index.html
|__iris-web-rtc_.js
``````html
...
...
```
Download: https://download.agora.io/sdk/release/iris-web-rtc_n440_w4220_0.8.0.js**For Testing Purposes**
You can directly depend on the Agora CDN for testing purposes:
```html...
...
```
### Interact with Agora RTC Native SDK(Android/iOS only)
> **NOTE**: This feature requires `agora_rtc_engine` >= 6.3.0Due 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.
More detail, please check the [ProcessVideoRawData](example/lib/examples/advanced/process_video_raw_data/process_video_raw_data.dart) example for reference.
### Known issues
#### iOS not work on release modeIf you experience issues with iOS not working in release mode, you may need to set the configuration below to avoid stripping symbols.
Please refer to the [Flutter documentation](https://docs.flutter.dev/platform-integration/ios/c-interop#stripping-ios-symbols) for more information.
## API Reference Resources
* [Flutter](https://api-ref.agora.io/en/voice-sdk/flutter/6.x/API/rtc_api_overview_ng.html)
* [Android](https://api-ref.agora.io/en/voice-sdk/android/4.x/API/rtc_api_overview_ng.html)
* [iOS/macOS](https://api-ref.agora.io/en/voice-sdk/ios/4.x/API/rtc_api_overview_ng.html)
* [Windows](https://api-ref.agora.io/en/video-sdk/cpp/4.x/API/rtc_api_overview_ng.html)
* [Web](https://api-ref.agora.io/en/video-sdk/web/4.x/index.html)## Feedback
If you have any problems or suggestions regarding the sample projects, feel free to file an [issue](https://github.com/AgoraIO-Community/agora_rtc_engine/issues) OR pull request.
## How to contribute
To help work on this sdk, please refer to [CONTRIBUTING.md](CONTRIBUTING.md).
## Related resources
- Check our [FAQ](https://docs.agora.io/en/faq) to see if your issue has been recorded.
- Dive into [Agora SDK Samples](https://github.com/AgoraIO) to see more tutorials.
- Take a look at [Agora Use Case](https://github.com/AgoraIO-usecase) for more complicated real use case.
- Repositories managed by developer communities can be found at [Agora Community](https://github.com/AgoraIO-Community).
- If you encounter problems during integration, feel free to ask questions in [Stack Overflow](https://stackoverflow.com/questions/tagged/agora.io).
- [Release notes](https://docs.agora.io/en/video-call-4.x-beta/release_flutter_ng?platform=Flutter).## License
The project is under the MIT license.