Live Stream Support (Flutter)

iOS

We support live stream on iOS by default. And you could also follow the instructions below to enhance the function of live stream.

Support low latency live stream

Installation

Add the following codes in the Podfile of your iOS project.

pod 'FireworkVideoIVSSupport', '0.8.1'

Integration

In your iOS project, you need to call FireworkVideoSDK.enableIVSPlayback() in application(:, didFinishLaunchingWithOptions:) -> Bool method.

import FireworkVideo
import FireworkVideoIVSSupport
import fw_flutter_sdk

func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
    FWFlutterSDK.initializeSDK(nil)
    FireworkVideoSDK.enableIVSPlayback()
    
    return true
}

Support low latency multi-host live stream

Add the following codes in the Podfile of your iOS project.

pod 'FireworkVideoAgoraSupport', '0.5.0'

Integration

In your iOS project, you need to call FireworkVideoSDK.enableMultiHostPlayback() in application(:, didFinishLaunchingWithOptions:) -> Bool method.

import FireworkVideo
import FireworkVideoAgoraSupport
import fw_flutter_sdk

func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
    FWFlutterSDK.initializeSDK(nil)
    FireworkVideoSDK.enableMultiHostPlayback()
    
    return true
}

Android

Unlike iOS, starting from V2.0.0, we don't support live stream on Android by default. But you could follow the instructions below to enable and enhance the function of live stream.

Add the MainApplication class if you don't have it

class MainApplication: FlutterApplication() {
}

Don't forget to add the configuration in the AndroidManifest.xml file

    <application
        android:name=".MainApplication"
        ...

Support the single-host live stream

Step 1: add the library dependency inside the dependencies block in the firework.gradle.

dependencies {
  implementation "com.firework.external.livestream:singleHostPlayer:+"
  ...
}

configurations.all {
  resolutionStrategy.eachDependency { details ->
    ...
    if (details.requested.group == 'com.firework.external.livestream' && details.requested.name == 'singleHostPlayer') {
      details.useVersion rootProject.ext.get("fwNativeVersion")
    }
    ...
  }
}

Step 2: add the following codes to the MainApplication class

import com.firework.livestream.singlehost.SingleHostLivestreamPlayerInitializer
import com.fireworksdk.bridge.flutter.FWFlutterSDK

class MainApplication: FlutterApplication() {

  override fun onCreate() {
    super.onCreate()

    // you need to add the module before the sdk init method
    FWFlutterSDK.addLivestreamPlayerInitializer(SingleHostLivestreamPlayerInitializer())
    FWFlutterSDK.init(this)
  }
}

Support the multi-host live stream

Step 1: add the library dependency inside dependencies block in the firework.gradle.

dependencies {
  implementation "com.firework.external.livestream:multiHostPlayer:+"
  ...
}

configurations.all {
  resolutionStrategy.eachDependency { details ->
    ...
    if (details.requested.group == 'com.firework.external.livestream' && details.requested.name == 'multiHostPlayer') {
      details.useVersion rootProject.ext.get("fwNativeVersion")
    }
    ...
  }
}

Step 2: add the following codes to the MainApplication class

import com.firework.livestream.multihost.MultiHostLivestreamPlayerInitializer
import com.fireworksdk.bridge.flutter.FWFlutterSDK

class MainApplication: FlutterApplication() {

  override fun onCreate() {
    super.onCreate()

    // you need to add the module before the sdk init method
    FWFlutterSDK.addLivestreamPlayerInitializer(MultiHostLivestreamPlayerInitializer())
    FWFlutterSDK.init(this)
  }
}

Use new livestream player design

FireworkSDK.getInstance().livestreamPlayerDesignVersion =
    LivestreamPlayerDesignVersion.v2;

Last updated