AuroStream Live SDK

AuroStream Live SDK enables developers to seamlessly integrate real-time live streaming and interactive features into their applications. It provides functionality for managing live sessions, handling user roles (broadcasters and viewers), toggling media streams (audio/video), and more, all through WebSocket communication.

Features

  • Real-Time Live Streaming: Easily initiate and manage live streams.
  • Multi-Role Support: Manage different user roles (e.g., host, guest, viewers) with role-based controls.
  • Audio/Video Control: Toggle audio and video streams, switch between front and back cameras, and handle microphone and camera status.
  • Interactive Features: Add/remove guests, send and receive comments, and handle user presence in real time.
  • Error Handling and UI Updates: Built-in error handling mechanisms with customizable callbacks for network reconnection and UI updates.
  • Scalable Architecture: Use WebSocket-based architecture for real-time communication.

Installation

To add AuroStream Live SDK to your project, update your pubspec.yaml file:

dependencies:
  auro_stream_live: ^0.0.1

Then, run the following command to fetch the package:

dart pub get

Usage

1. Initialize the SDK

Before using any features, initialize the SDK with your projectId and apiKey.

import 'package:auro_stream_live/auro_stream_live.dart';

void main() {
  AuroStreamLive.initialize(
    projectId: 'your_project_id',
    apiKey: 'your_api_key',
  );
}

2. Connect to the Server

You need to connect to the server before starting a live session.

AuroStreamLive.instance.connectServer(
  whenConnect: () {
    print('Connected to the server.');
  },
  whenDisconnect: () {
    print('Disconnected from the server.');
  },
  whenConnectError: (error) {
    print('Connection error: $error');
  },
  whenReconnect: (data) {
    print('Reconnected: $data');
  },
  whenReconnectError: (error) {
    print('Reconnection error: $error');
  },
);

3. Starting and Managing a Live Session

To start a live session, you can call:

AuroStreamLive.instance.startLive(
  username: 'your_username',
);

You can end a live session using:

AuroStreamLive.instance.endLive(sessionKey: 'your_session_key');

4. Guest Management

Add a guest to your live session:

AuroStreamLive.instance.addGuestToLive(
  sessionKey: 'your_session_key',
  userId: 'guest_user_id',
);

Remove a guest from the live session:

AuroStreamLive.instance.removeGuestFromLive(
  sessionKey: 'your_session_key',
  userId: 'guest_user_id',
);

5. Handling Audio and Video

Turn the microphone on or off:

AuroStreamLive.instance.micON(
  sessionKey: 'your_session_key',
  username: 'your_username',
);

AuroStreamLive.instance.micOFF(
  sessionKey: 'your_session_key',
  username: 'your_username',
);

Turn the video camera on or off:

AuroStreamLive.instance.videoCamON(
  sessionKey: 'your_session_key',
  username: 'your_username',
);

AuroStreamLive.instance.videoCamOFF(
  sessionKey: 'your_session_key',
  username: 'your_username',
);

Switch between the front and back camera:

AuroStreamLive.instance.switchCamera(
  sessionKey: 'your_session_key',
);

6. Receiving Comments

To listen for incoming comments:

AuroStreamLive.instance.onReceiveCommentListener(
  whenReceiveComment: (feedback, comment) {
    print('Received comment: $comment');
  },
);

7. Error Handling and UI Updates

You can handle network disconnection and reconnection with customizable callbacks:

AuroStreamLive.instance.initFunctions(
  handleNetworkReconnectionFunction: () {
    print('Reconnected to the network.');
  },
  handleNetworkDisconnectionFunction: () {
    print('Disconnected from the network.');
  },
  updateUiFunction: () {
    // Custom UI update logic
  },
  whenInitMediaFunction: () {
    // Initialize media-related UI components
  },
  whenNoAudioTrackFunction: () {
    print('No audio track available.');
  },
  whenNoVideoTrackFunction: () {
    print('No video track available.');
  },
);

Full API Documentation

For more detailed information, including the full list of available methods and event handlers, check the official API Documentation.

License

This package is licensed under the MIT License. See the LICENSE file for more details.

Libraries

auro_stream_live