Skip to main content

Face AR and AR Cloud products

Banuba Face AR SDK product is used on camera and editor screens for applying various AR effects while making video content.

Overview

Any Face AR effect is a folder that includes a number of files required for Face AR SDK to play this effect.

tip

Make sure preview.png file is included in effect folder. You can use this file as a preview for AR effect.

Integrate Face AR

info

Banuba Face AR SDK integration is included in the Github sample.

Follow next steps to integrate Banuba Face AR SDK into your project.
First, add Gradle com.banuba.sdk:effect-player-adapter dependency in app gradle file.

    def banubaSdkVersion = '1.37.0'
...
+ implementation "com.banuba.sdk:effect-player-adapter:${banubaSdkVersion}"
...

Add BanubaEffectPlayerKoinModule().module in the VideoEditorModule

startKoin {
androidContext(this@IntegrationApp)
modules(
...
+ BanubaEffectPlayerKoinModule().module
)
}

Add and Manage effects

There are 3 options for adding and managing AR effects:

  1. Store all effects in assets/bnb-resources/effects folder in the app.
  2. Store color effects in assets/bnb-resources/luts folder in the app.
  3. Use AR Cloud for storing effects on a server.
tip

You can use both options i.e. store just a few AR effects in assets and 100 or more AR effects on AR Cloud.

Integrate AR Cloud

AR Cloud is a cloud solution for storing Banuba Face AR effects on the server and used by Face AR and Video Editor products.
Any AR effect downloaded from AR Cloud is cached on the user's device.

Follow next steps to integrate AR Cloud into your project.
First, add Gradle com.banuba.sdk:ar-cloud dependency in app gradle file.

    def banubaSdkVersion = '1.37.0'
...
+ implementation "com.banuba.sdk:ar-cloud:${banubaSdkVersion}"
...

Next, add ArCloudKoinModule module to Koin modules.

startKoin {
...

modules(
VeSdkKoinModule().module,
...
+ ArCloudKoinModule().module,
...
)
}

Next, override ArEffectsRepositoryProvider in VideoEditorModule.

   single<ArEffectsRepositoryProvider>(createdAtStart = true) {
ArEffectsRepositoryProvider(
arEffectsRepository = get(named("backendArEffectsRepository")),
ioDispatcher = get(named("ioDispatcher"))
)
}

Change order effects

By default, all AR effects are listed in alphabetical order. AR effects from assets are listed in order.

Create new class CustomMaskOrderProvider and implement OrderProvider to provide custom order.

class CustomMaskOrderProvider : OrderProvider {
override fun provide(): List<String> = listOf("Background", "HeadphoneMusic")
}
info

These are names of specific directories in assets/bnb-resources/effects or on AR Cloud.

Next, use CustomMaskOrderProvider in VideoEditorModule

single<OrderProvider>(named("maskOrderProvider")) {
CustomMaskOrderProvider()
}

Disable Face AR SDK

Video Editor SDK can be used without Face AR SDK.

Remove BanubaEffectPlayerKoinModule().module from VideoEditorModule

startKoin {
androidContext(this@IntegrationApp)
modules(
...
- BanubaEffectPlayerKoinModule().module
)
}

and remove Gradle dependency com.banuba.sdk:effect-player-adapter

    ...
- implementation "com.banuba.sdk:effect-player-adapter:${banubaSdkVersion}"
...