Dev Docs
Contact Us
  • Introduction
    • About Lucid
    • Lucid Platform
  • Products
    • Video Personalization
      • Overview
      • Playback Integration
        • HTML5 Integration
        • Android/Fire TV Integration
        • Android Mobile Integration
      • API Reference
    • Recommendation
      • Overview
      • How To Guide
        • Import Data
        • Train the Model
        • Get Recommendations
      • Sample Workflows
        • NFT Recommendations
        • Video Recommendations
      • API Reference
    • Moderation
      • Overview
  • API Reference
    • Getting Started
      • Create an Account
      • API Keys
    • API Reference
      • Recommender API
      • Video Summarization API
  • Contact Us
    • Lucid Home
Powered by GitBook
On this page
  • Architecture
  • Modules
  • Branches
  • Build and deploy
  • Fastlane
  • Continuous Integration (CI)
  • Integrating with Android or Fire TV
  • Step 1: Download the Lucid Android SDK
  • Step 2: Add SDK to your project
  • Step 3. Update Your Android Manifest
  • Step 4: Initialize the SDK in your app
  • Step 5: Prepare Preview Videos
  • Step 6: Use PreviewLayout
  1. Products
  2. Video Personalization
  3. Playback Integration

Android/Fire TV Integration

PreviousHTML5 IntegrationNextAndroid Mobile Integration

Last updated 2 years ago

Architecture

This SDK is built for Android-based platforms including Android TV and Fire TV. We should not include any Google/Amazon/TV specific features in the SDK.

We use Kotlin and Coroutine to build up this SDK and demo apps. Java developers can also use this SDK easily

The SDK uses the following dependencies:

  • for image loading

  • for json serialization/deserialization

  • for network connection

  • for http rest api connection

  • for video playback

Modules

  • video_preview_sdk: the sdk library

  • demo_app: show how to integrate the SDK for Android TV apps

  • sample_app: show how to integrate the SDK for generic android apps

Branches

  • master: The developing branch with the latest changes

Build and deploy

Fastlane

You can also use gradle build as normal Android build process.

List some fastlane commands we defined in the following:

# Clean project
bundle exec fastlane clean

# Run lint static source code check
bundle exec fastlane lint_check

# Run all unit tests
bundle exec fastlane unit_tests

# Run lint and all unit tests
bundle exec fastlane lint_and_unit_tests

# Build debug sdk and apk
bundle exec fastlane build_debug

# Build release sdk and apk
bundle exec fastlane build_release

Continuous Integration (CI)

Integrating with Android or Fire TV

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

Step 1: Download the Lucid Android SDK

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 "com.google.android.exoplayer:exoplayer-core:$exoplayer_version"
    implementation "com.google.android.exoplayer:exoplayer-ui:$exoplayer_version"
    implementation "com.google.android.exoplayer:extension-mediasession:$exoplayer_version"
    implementation "com.google.android.exoplayer:extension-leanback:$exoplayer_version"
    implementation "com.google.android.exoplayer:exoplayer-dash:$exoplayer_version"
    implementation "com.google.android.exoplayer:exoplayer-hls:$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.

LucidPreviewVideoSdk.init("token")

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(R.id.title_preview)
titlePreview.setLucidVideo(video)
titlePreview.setPreviewPlayback(true)

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

{"mode":"full","isActive":false}

We will use to help the build and deploy process. You can setup fastlane by or The Fastlane config files: and

We are using as our SAAS CI server.

The circleci needs a config file and all the automation commands are inside the config file.

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

Glide
Gson
Okhttp
Retrofit
ExoPlayer
fastlane
fastlane_README
Online Doc
Fastfile
Appfile
Circle CI
config.yml
here