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.
Make sure preview.png file is included in effect folder. You can use this file as a preview for AR effect.
Integrate Face AR
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.47.2'
...
+ 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:
- Store all effects in assets/bnb-resources/effects folder in the app.
- Store color effects in assets/bnb-resources/luts folder in the app.
- Use AR Cloud for storing effects on a server.
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.47.2'
...
+ 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")
}
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}"
...