Released on March 15, 2022

<aside> ‼️ This release requires prior migration to 1.21

</aside>

List of changes

  1. Pinch to change trimmer scale.

    scale timeline.gif

  2. VE analytics is now available to every customer! You can see the following data in the export:

    1. exported video duration
    2. effects used
    3. resolution
    4. number of clips used on the result video
    5. camera / gallery video
  3. QHD support. You can now record and export videos in 2560x1440

  4. Main bug fixes:

List of updated modules

Migration guide

<aside> 👉 Here is an example of the PR sample of this update: link

</aside>

  1. Upgrade compileSdkVersion to 31.

  2. New koin module: VeFlowKoinModule. Add VeFlowKoinModule().module along with other modules.

  3. Since there is new separate VeFlowKoinModule, remove FlowEditorModule extension from your custom module, and move all provided implementations under module field:

    class IntegrationKoinModule: ~~FlowEditorModule()~~ {
    	val module = module {
    		//move all configured implementations here
    	}
    }
    

    Note. Your custom module should be passed after VeFlowKoinModule inside startKoin to ensure your custom implementations will override the defaults.

    class IntegrationKotlinApp : Application() {
    
        override fun onCreate() {
            super.onCreate()
            startKoin {
                androidContext(this@IntegrationKotlinApp)
                modules(
    								// other modules
                    VeFlowKoinModule().module,
                    IntegrationKoinModule().module
                )
            }
        }
    }
    
  4. New AspectRatioProvider interface to configure default aspect ratio for videos:

    single<AspectRatioProvider>(override = true) {
        object : AspectRatioProvider {
            override fun provide(): AspectRatio = AspectRatio(4.0 / 5)
        }
    }
    

    Aspect ratio 9:16 is used by default.

    Updated information about aspects settings is here.

  5. New OrderProvider for fx effects:

    single<OrderProvider>(named("fxEffectsOrderProvider"), override = true) {
                // implementation
            }
    
  6. Config json files (videoeditor.json, camera.json, etc.) placed in assets directory now are removed. To configure VE SDK behavior you should provide config classes through DI (below are just examples, you do not need to provide these classes if they do not have any customized property):

    single<MusicEditorConfig>(override = true) {
            MusicEditorConfig()
        }
    
    single<ObjectEditorConfig>(override = true) {
            ObjectEditorConfig()
        }
    
    single<CameraConfig>(override = true) {
            CameraConfig()
        }
    
    single<EditorConfig>(override = true) {
             EditorConfig(
                stickersApiKey = "<!-- Your Giphy key -->",
                showEditorConfig = true,
                slideShowFromGalleryAnimationEnabled = false,
                slideShowFromPhotoAnimationEnabled = false)
        }
    

    The same is for the audio browser with Mubert (if you use Banuba Audio Browser feature):

    single<MubertApiConfig>(override = true) {
                MubertApiConfig()
            }
    

    ❗Please check updated documentation about config classes.