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.
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:
Then run:
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:
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'
});
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:
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());
}
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:
- Set up Authentication - Configure user authentication
- Create Your First Stream - Build a basic streaming feature
- Explore Core Concepts - Understand streaming fundamentals
Need help? Check our Troubleshooting Guide for common installation issues.