Skip to content

Add aspects config to New UI #302

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package com.banuba.example.integrationapp

import android.net.Uri
import android.util.Size
import androidx.core.net.toFile
import com.banuba.sdk.core.AspectRatio
import com.banuba.sdk.core.VideoResolution
import com.banuba.sdk.export.data.ExportParams
import com.banuba.sdk.export.data.ExportParamsProvider
import com.banuba.sdk.ve.domain.VideoRangeList
import com.banuba.sdk.ve.effects.Effects
import com.banuba.sdk.ve.effects.music.MusicEffect
import com.banuba.sdk.ve.effects.watermark.WatermarkBuilder

class CustomExportParamsProvider(
private val exportDir: Uri,
private val watermarkBuilder: WatermarkBuilder,
) : ExportParamsProvider {

override fun provideExportParams(
effects: Effects,
videoRangeList: VideoRangeList,
musicEffects: List<MusicEffect>,
videoVolume: Float,
): List<ExportParams> {
val exportSessionDir = exportDir.toFile().apply {
deleteRecursively()
mkdirs()
}

val exportVideoHD = ExportParams(
resolution = VideoResolution.Exact.QHD,
aspectRatio= AspectRatio(16.0/9),
effects = effects,
videoRangeList = videoRangeList,
debugEnabled = true,
destDir = exportSessionDir,
fileExt = ".mp4",
fileName = "export_video_QHD",
volumeVideo = videoVolume,
musicEffects = musicEffects,
extraAudioFile = Uri.EMPTY,
interactivePreviewParams = null,
size = Size(0, 0),
useHevcIfPossible = true
)
return listOf(exportVideoHD)
}
}
Original file line number Diff line number Diff line change
@@ -1,19 +1,36 @@
package com.banuba.example.integrationapp

import android.content.Context
import android.net.Uri
import android.os.Bundle
import android.util.Size
import androidx.core.net.toFile
import androidx.fragment.app.Fragment
import com.banuba.sdk.arcloud.data.source.ArEffectsRepositoryProvider
import com.banuba.sdk.arcloud.di.ArCloudKoinModule
import com.banuba.sdk.audiobrowser.di.AudioBrowserKoinModule
import com.banuba.sdk.audiobrowser.domain.AudioBrowserMusicProvider
import com.banuba.sdk.core.AspectRatio
import com.banuba.sdk.core.VideoResolution
import com.banuba.sdk.core.data.TrackData
import com.banuba.sdk.core.ui.ContentFeatureProvider
import com.banuba.sdk.effectplayer.adapter.BanubaEffectPlayerKoinModule
import com.banuba.sdk.export.data.ExportParams
import com.banuba.sdk.export.data.ExportParamsProvider
import com.banuba.sdk.export.di.VeExportKoinModule
import com.banuba.sdk.gallery.di.GalleryKoinModule
import com.banuba.sdk.playback.di.VePlaybackSdkKoinModule
import com.banuba.sdk.ve.data.EditorAspectSettings
import com.banuba.sdk.ve.data.EditorAspectSettings.`16_9`.aspectRatio
import com.banuba.sdk.ve.data.aspect.AspectSettings
import com.banuba.sdk.ve.data.aspect.AspectsProvider
import com.banuba.sdk.ve.di.VeSdkKoinModule
import com.banuba.sdk.ve.domain.VideoRangeList
import com.banuba.sdk.ve.effects.Effects
import com.banuba.sdk.ve.effects.music.MusicEffect
import com.banuba.sdk.ve.effects.watermark.WatermarkBuilder
import com.banuba.sdk.ve.flow.di.VeFlowKoinModule
import com.banuba.sdk.veui.data.EditorConfig
import com.banuba.sdk.veui.di.VeUiSdkKoinModule
import org.koin.android.ext.koin.androidContext
import org.koin.core.context.startKoin
Expand Down Expand Up @@ -63,5 +80,35 @@ private class SampleIntegrationKoinModule {
) {
AudioBrowserMusicProvider()
}

single {
object : AspectsProvider {

override var availableAspects: List<AspectSettings> = listOf(
EditorAspectSettings.`16_9`
)

override fun provide(): AspectsProvider.AspectsData {
return AspectsProvider.AspectsData(
allAspects = availableAspects,
default = availableAspects.first()
)
}
override fun setBundle(bundle: Bundle) {}
}
}

single {
EditorConfig(
aspectSettings = EditorAspectSettings.`16_9`
)
}

factory<ExportParamsProvider> {
CustomExportParamsProvider(
exportDir = get(named("exportDir")),
watermarkBuilder = get()
)
}
}
}
}