agora_rtc_engine 4.1.0-alpha.2 copy "agora_rtc_engine: ^4.1.0-alpha.2" to clipboard
agora_rtc_engine: ^4.1.0-alpha.2 copied to clipboard

outdated

Flutter plugin for Agora Video SDK.

agora_rtc_engine #

pub package

中文

This Flutter plugin is a wrapper for Agora Video SDK.

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.

Usage #

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

See the required device permissions from the AndroidManifest.xml file.

<manifest>
    ...
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission
        android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"
        tools:ignore="ProtectedPermissions" />
    ...
</manifest>

iOS & Macos

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.

Flutter2 support #

Null Safety #

We have supported null safety at the 4.0.1 version already. This version is not downward compatible, your project needs to be migrated to null safety, please refer to Migrating to null safety.

Multiple Platforms #

Linux

Not support yet.

Macos

We have a wrapper library named AgoraRtcWrapper.framework for the Native SDK, so you should add it to your Podfile file, you can refer to example/macos/Podfile.

pod 'AgoraRtcWrapper', :path => File.join(File.join('Flutter', 'ephemeral', '.symlinks'), 'plugins', 'agora_rtc_engine', 'macos')

Important

This is a temporary plan, we will publish this library to Cocoapods before officially released, then you needn't modify the Podfile file.

Windows

You can get more info from the CMakeLists.text file, such as dependency Libraries on Windows.

Web

We use the js library to call JavaScript from the dart layer.

We have a wrapper library named AgoraRtcWrapper.bundle.js for the Web SDK, so you should add it to your index.html, you can refer to example/web/index.html.

<script src="AgoraRtcWrapper.bundle.js" type="application/javascript"></script>

This wrapper library is the output of the open-source repository Iris-Rtc-Web. The repository attempt to mapping the API from Web SDK as Native SDK, we make it open-source to help developer positioning and troubleshooting.

We have imported it as a Git submodule, you can find it in the web folder.

Error handling #

Please check Pinned issues and search in Issues first.

Background mode #28 #

Android

Android 9.0 Background Capture

iOS

Select your TARGET in Xcode, and click the Signing & Capabilities tab, then enable Background Modes and check Audio, AirPlay, and Picture in Picture.

RawData #183 #

Only support Android and iOS yet.

Using flutter assets #181 #

Screen Sharing #

Only support Web yet, we will support Macos and Windows at next alpha version.

API #

How to contribute #

To help work on this sdk, please refer to CONTRIBUTING.md.