Skip to main content

Documentation Index

Fetch the complete documentation index at: https://learn.social.plus/llms.txt

Use this file to discover all available pages before exploring further.

Installation & Setup

This guide covers installation and basic setup for all supported platforms. Choose your platform and follow the corresponding section.

Platform Requirements

Android

  • Minimum SDK: Android API level 21 (Android 5.0)
  • Target SDK: Latest stable Android API
  • Build Tools: Android Studio 4.0+
  • Language: Kotlin (recommended) or Java

iOS

  • Minimum Version: iOS 12.0+
  • Development: Xcode 12.0+
  • Language: Swift (recommended) or Objective-C

Web

  • Browser Support: Chrome 38+, Firefox 42+, Safari 9+, Edge 13+, Opera 25+
  • Frameworks: Vanilla JavaScript, React, Vue, Angular
  • Note: Server-side rendering not supported (use dynamic imports for Next.js)

React Native

  • Version: React Native 0.60+
  • Platforms: iOS 12.0+, Android API 21+

Flutter

  • Version: Flutter 2.0+
  • Platforms: iOS 12.0+, Android API 21+

TypeScript React Native

  • Version: React Native 0.60+ with TypeScript support
  • Platforms: iOS 12.0+, Android API 21+

Installation Instructions

Android

1. Add Dependency

Add the Video SDK dependency to your app-level build.gradle:
dependencies {
    implementation 'com.github.AmityCo.Amity-Social-Cloud-SDK-Android:amity-video-publisher:x.y.z'
}

2. Initialize SDK

In your Application class, register the video publisher SDK:
class MyApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        
        // Initialize Core SDK first
        AmityCoreClient.setup(
            configuration = AmityCoreClientConfiguration.Builder()
                .apiKey("YOUR_API_KEY")
                .endpoint("YOUR_ENDPOINT")
                .build(),
            context = this
        )
        
        // Register Video SDK
        AmityStreamBroadcasterClient.setup(AmityCoreClient.getConfiguration())
    }
}

3. Add Permissions

Add required permissions to your AndroidManifest.xml:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

iOS

1. Add Dependency

Using CocoaPods, add to your Podfile:
pod 'AmityVideoSDK'
Then run:
pod install

2. Initialize SDK

In your AppDelegate:
import AmitySDK
import AmityVideoSDK

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    
    // Initialize Core SDK
    AmityManager.setup(apiKey: "YOUR_API_KEY", endpoint: "YOUR_ENDPOINT")
    
    // Register Video SDK
    AmityVideoManager.setup()
    
    return true
}

3. Add Permissions

Add usage descriptions to your Info.plist:
<key>NSCameraUsageDescription</key>
<string>This app needs camera access to broadcast live streams</string>
<key>NSMicrophoneUsageDescription</key>
<string>This app needs microphone access for live streaming audio</string>

Web

1. Install Package

Using npm:
npm install @amityco/video-sdk
Using yarn:
yarn add @amityco/video-sdk

2. Initialize SDK

import { AmityVideoSDK } from '@amityco/video-sdk';

// Initialize the SDK
const videoSDK = AmityVideoSDK.create({
  apiKey: 'YOUR_API_KEY',
  endpoint: 'YOUR_ENDPOINT'
});

// Authenticate user
await videoSDK.login('userId', 'displayName');

3. Browser Permissions

The SDK will automatically request camera and microphone permissions when needed. Ensure your site is served over HTTPS in production.

React Native

1. Install Package

npm install @amityco/react-native-video-sdk
For iOS, install pods:
cd ios && pod install

2. Initialize SDK

import { AmityVideoSDK } from '@amityco/react-native-video-sdk';

// Initialize in your App.js or index.js
AmityVideoSDK.setup({
  apiKey: 'YOUR_API_KEY',
  endpoint: 'YOUR_ENDPOINT'
});

3. Platform Permissions

iOS: Add to Info.plist:
<key>NSCameraUsageDescription</key>
<string>Camera access for live streaming</string>
<key>NSMicrophoneUsageDescription</key>
<string>Microphone access for live streaming</string>
Android: Add to AndroidManifest.xml:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />

Flutter

1. Add Dependency

Add to your pubspec.yaml:
dependencies:
  amity_video_sdk: ^x.y.z
Run:
flutter pub get

2. Initialize SDK

import 'package:amity_video_sdk/amity_video_sdk.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  await AmityVideoSDK.setup(
    apiKey: 'YOUR_API_KEY',
    endpoint: 'YOUR_ENDPOINT',
  );
  
  runApp(MyApp());
}

3. Platform Permissions

iOS: Add to ios/Runner/Info.plist:
<key>NSCameraUsageDescription</key>
<string>Camera access for live streaming</string>
<key>NSMicrophoneUsageDescription</key>
<string>Microphone access for live streaming</string>
Android: Add to android/app/src/main/AndroidManifest.xml:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />

TypeScript React Native

1. Install Package

npm install @amityco/ts-sdk-react-native

2. Initialize SDK

import { StreamRepository } from '@amityco/ts-sdk-react-native';

// Initialize SDK with TypeScript support
const initializeVideoSDK = async () => {
  // Setup happens through the core SDK configuration
  // Video features are available through StreamRepository
};

Configuration Options

Video Quality Settings

Configure default video quality across platforms:
// Example configuration object
const videoConfig = {
  resolution: 'HD_720P', // 'SD_480P', 'HD_720P', 'FHD_1080P'
  bitrate: 2496, // kbps
  frameRate: 30,
  aspectRatio: '16:9'
};

Network Settings

const networkConfig = {
  timeout: 30000, // Connection timeout in ms
  retryAttempts: 3,
  adaptiveBitrate: true // Automatic quality adjustment
};

Verification

Test Installation

Create a simple test to verify your installation:

    Troubleshooting Installation

    Common Issues

    Android Build Errors
    • Ensure minSdkVersion is 21 or higher
    • Check ProGuard rules if using code obfuscation
    • Verify all permissions are declared
    iOS Pod Issues
    • Clean pod cache: pod cache clean --all
    • Update pod repo: pod repo update
    • Check iOS deployment target is 12.0+
    Web HTTPS Required
    • Camera/microphone access requires HTTPS
    • Use localhost for development
    • Configure SSL certificates for production
    React Native Metro Issues
    • Clear Metro cache: npx react-native start --reset-cache
    • Verify React Native version compatibility
    • Check native dependency linking

    Next Steps

    Once installation is complete:
    1. Set up Authentication - Configure user authentication
    2. Create Your First Stream - Build a basic streaming feature
    3. Explore Core Concepts - Understand streaming fundamentals
    Need help? Check our Troubleshooting Guide for common installation issues.