Android Mobile Integration

Use these instructions to integrate the SDK with your Android mobile app. If you have any questions, please contact the Lucid account team.

Step 1: Download the Lucid Android SDK

The Lucid Preview Video Android SDK is available as an AAR. Download the latest aar file from here

Step 2: Add SDK to your project

To add the sdk dependency, put the aar file into your libs folder and make sure the app module's build.gradle to have the following lines:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])

The Lucid Preview Video Android SDK uses ExoPlayer for displaying the previews, so the first step will be to add ExoPlayer to your project. Add these lines to the app module's build.gradle:

dependencies {
    // ExoPlayer's leanback extension
    def exoplayer_version = '2.14.0'
    implementation "$exoplayer_version"
    implementation "$exoplayer_version"
    implementation "$exoplayer_version"
    implementation "$exoplayer_version"
    implementation "$exoplayer_version"
    implementation "$exoplayer_version"

To support Java 8, add the language feature support:

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8

Step 3. Update Your Android Manifest

Update your AndroidManifest.xml in order to complete the SDK integration.

<!-- Required permissions -->
<uses-permission android:name="android.permission.INTERNET" />

Step 4: Initialize the SDK in your app

After you have integrated the Lucid Preview Video SDK and created an access token, you must call LucidPreviewVideoSdk.init before showing any videos. Initialization is required for only once per app's lifecycle, typically on app launch.

You need to pass an access token string to the LucidPreviewVideoSdk.init API for initialization.


You can also adjust the log level for debugging, the default log level is LogLevel.ERROR, which only print the error messages. You can set your own configuration when using LucidPreviewVideoSdk.init API.

// Do not print any logs
LucidPreviewVideoSdk.init("token", LogLevel.NONE)
// Print all logs
LucidPreviewVideoSdk.init("token", LogLevel.VERBOSE)

You can also adjust the cache size for the preview videos, the default size is 50 entries, you can set your own configuration when using LucidPreviewVideoSdk.init API.

LucidPreviewVideoSdk.init("token", LogLevel.Error, 100)

Step 5: Prepare Preview Videos

Once the sdk is initialized, you can use LucidRequest to prepare the preview video information with the prepareVideo() API.

val request = LucidRequest(videoId, videoIndex)
LucidPreviewVideoSdk.prepareVideo(request, object: LucidPreviewVideoSdk.LucidPreviewListener{
    override fun onError(e: Exception) {

    override fun onSuccess(video: LucidVideo) {

Step 6: Use PreviewLayout

The PreviewLayout class is an UI component to display the preview video. Use setLucidVideo() API to prepare the preview content and use setPreviewPlayback() to start/stop playing preview.

private lateinit var titlePreview: PreviewLayout

titlePreview = view.findViewById(

There are multiple attributes for PreviewLayout. You can configurate them either using xml or Java/Kotlin APIs.

loop: default true
mute: default false
gradient_border: default true


Last updated