> For the complete documentation index, see [llms.txt](https://docs.firework.com/firework-for-developers/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.firework.com/firework-for-developers/react-native-sdk/integration-guide-v2/live-stream-support.md).

# Live Stream Support (React Native)

## 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.

```ruby
pod 'FireworkVideoIVSSupport', '0.9.0'
```

#### Integration

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

```swift
import FireworkVideo
import FireworkVideoIVSSupport
import react_native_firework_sdk

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

If your `AppDelegate` class is written by Objective-C, you should create a Swift file to call the API. For example, you could create `FireworkSupportLibraryBridge.swift` and add the following codes.

```swift
import Foundation
import FireworkVideo
import FireworkVideoIVSSupport
import react_native_firework_sdk

@objc
public class FireworkSupportLibraryBridge: NSObject {
  @objc public static func initFireworkSDK() {
      FWReactNativeSDK.initializeSDK(nil)
  }
  @objc public static func enableIVSPlayback() {
    FireworkVideoSDK.enableIVSPlayback()
  }
}
```

Then add `[FireworkSupportLibraryBridge enableIVSPlayback];` on `application:didFinishLaunchingWithOptions:` method.

```objectivec
// You should change the file to Objective-C Generated Interface Header name.
// Generally, it's "{TargetName}-Swift.h"
#import "FireworkSdkExample-Swift.h"

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [FireworkSupportLibraryBridge initFireworkSDK];
  [FireworkSupportLibraryBridge enableIVSPlayback];
  return YES;
}
```

## Android

Unlike iOS, starting from V2.3.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.`

```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

<pre class="language-kotlin"><code class="lang-kotlin">import com.firework.livestream.singlehost.SingleHostLivestreamPlayerInitializer
import com.fireworksdk.bridge.flutter.FWFlutterSDK

class MainApplication: FlutterApplication() {

  override fun onCreate() {
    super.onCreate()
<strong>    FWReactNativeSDK.initializeSDK(nil)
</strong>    FWFlutterSDK.addLivestreamPlayerInitializer(SingleHostLivestreamPlayerInitializer())
  }
}
</code></pre>

## Use modern (v2) livestream player

The modern (v2) livestream player offers a more extensive feature set than the classic (v1) version. For instance, features such as Giveaway, Trivia Giveaway, and AI Copilot are available exclusively in the modern player, and are not supported in the classic player.

```dart
// Use modern (v2) livestream player
FireworkSDK.getInstance().livestreamPlayerDesignVersion =
  LivestreamPlayerDesignVersion.v2;
```
