diff --git a/app/src/main/java/com/banuba/example/integrationapp/CustomExportParamsProvider.kt b/app/src/main/java/com/banuba/example/integrationapp/CustomExportParamsProvider.kt new file mode 100644 index 0000000..5e3e65b --- /dev/null +++ b/app/src/main/java/com/banuba/example/integrationapp/CustomExportParamsProvider.kt @@ -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, + videoVolume: Float, + ): List { + 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) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/banuba/example/integrationapp/VideoEditorModule.kt b/app/src/main/java/com/banuba/example/integrationapp/VideoEditorModule.kt index 3e13e3b..7c17760 100644 --- a/app/src/main/java/com/banuba/example/integrationapp/VideoEditorModule.kt +++ b/app/src/main/java/com/banuba/example/integrationapp/VideoEditorModule.kt @@ -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 @@ -63,5 +80,35 @@ private class SampleIntegrationKoinModule { ) { AudioBrowserMusicProvider() } + + single { + object : AspectsProvider { + + override var availableAspects: List = 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 { + CustomExportParamsProvider( + exportDir = get(named("exportDir")), + watermarkBuilder = get() + ) + } } -} +} \ No newline at end of file