Agora_Flutter_WebRTC

Agora Flutter WebRTC is a real-time audio/video plugin based on Flutter WebRTC. It implements the major functions provided by the Agora Web SDK.

Usage

Add flutter_webrtc as a dependency in your pubspec.yaml file.

Getting Started

  • See the example directory for a sample app using Agora_Flutter_WebRTC.
  • Or check out this tutorial for a simple video call app using the Agora_Flutter_WebRTC.

iOS

Add the following entry to your Info.plist file, located in <project root>/ios/Runner/Info.plist:

<key>NSCameraUsageDescription</key>
<string>$(PRODUCT_NAME) Camera Usage!</string>
<key>NSMicrophoneUsageDescription</key>
<string>$(PRODUCT_NAME) Microphone Usage!</string>

use the following line in the ios/Podfile file.

platform :ios, '9.0'

Android

Ensure the following permission is present in your Android Manifest file, located in `/android/app/src/main/AndroidManifest.xml:

    <uses-permission android:name="android.permission.INTERNET"/>

    <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.WAKE_LOCK" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Also you will need to set your build settings to Java 8, because official WebRTC jar now uses static methods in EglBase interface. Just add this to your app level build.gradle:

android {
    //...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

Ensure that minSdkVersion is 18 or higher in build.gradle.

 defaultConfig {
        applicationId "com.example.agora_flutter_webrtc_quickstart"
        minSdkVersion 18 
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

Libraries

agora_client
agora_flutter_webrtc
agora_stream
agora_view