client-sdk-android  by livekit

Realtime communication SDK for Android apps

Created 5 years ago
329 stars

Top 83.2% on SourcePulse

GitHubView on GitHub
Project Summary

Summary

LiveKit's Android SDK provides a Kotlin-based client for integrating real-time video, audio, and data features into Android applications. It enables developers to quickly build features like video calls, live streaming, and multi-modal AI by connecting to LiveKit Cloud or self-hosted servers, requiring minimal code.

How It Works

The SDK abstracts the complexities of WebRTC and real-time communication protocols, offering a straightforward Kotlin API. It facilitates connection to LiveKit servers, managing participant tracks, and rendering video streams using SurfaceViewRenderer or TextureViewRenderer. Developers can publish camera, microphone, and screen share streams, with optional modules enhancing camera controls and enabling track processing like virtual backgrounds.

Quick Start & Requirements

Installation involves adding the io.livekit:livekit-android Maven package to your build.gradle file. JitPack is required for SNAPSHOT access. Runtime permissions for RECORD_AUDIO and CAMERA are mandatory. Development on Macs with Apple silicon may require a specific protoc_platform setting in gradle.properties. Official documentation and API references are available at https://docs.livekit.io.

Highlighted Details

  • This is v2 of the SDK, with migration notes available for users of v1.x.
  • Optional modules provide CameraX integration for advanced camera controls and track processors for features like virtual backgrounds.
  • Supports Kotlin Flows for observing real-time events and state changes (e.g., activeSpeakers).
  • Configurable audio modes, including MediaAudioType for streaming focus and CustomAudioType for granular control, though audio routing is system-managed by default.

Maintenance & Community

The project is part of the broader LiveKit ecosystem, which includes SDKs for numerous platforms (Browser, Swift, Flutter, React Native, etc.) and starter applications. Community support channels include Slack, X, and YouTube.

Licensing & Compatibility

The README does not explicitly state the project's license. This omission requires further investigation for compatibility with commercial or closed-source applications.

Limitations & Caveats

Version 2 introduces breaking changes from v1.x, necessitating a migration process. The README does not specify the open-source license, which is a critical factor for adoption decisions. Audio routing is automatically handled by the system and lacks direct manual control within the SDK's default configuration.

Health Check
Last Commit

1 week ago

Responsiveness

Inactive

Pull Requests (30d)
18
Issues (30d)
5
Star History
9 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.