Skip to content

Releases: Banuba/BanubaVideoEditorSDK-iOS

1.22.1

30 Apr 13:45
Compare
Choose a tag to compare

1.21.0

25 Jan 15:17
Compare
Choose a tag to compare

1.20.1

03 Dec 09:40
Compare
Choose a tag to compare

1.20.0

26 Nov 16:33
Compare
Choose a tag to compare

1.19.1

22 Oct 09:40
Compare
Choose a tag to compare

1.19.0

04 Oct 13:21
Compare
Choose a tag to compare

Pre release 0.1.19

16 Sep 11:17
Compare
Choose a tag to compare

Pre release 0.0.19

16 Sep 10:22
Compare
Choose a tag to compare

1.0.15

15 Apr 10:29
Compare
Choose a tag to compare

Please check our GitHub sample integration with all of the following changes.

sample pod file using FaceAr:

source 'git@github.com:Banuba/specs.git'
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '11.0'
use_frameworks!

target 'Example' do
  pod 'BanubaARCloudSDK', '1.0.15'
  pod 'BanubaVideoEditorSDK', '1.0.15'
  pod 'BanubaAudioBrowserSDK', '1.0.15'
  pod 'BanubaMusicEditorSDK', '1.0.15'
  pod 'BanubaOverlayEditorSDK', '1.0.15'
  pod 'BanubaEffectPlayer', '1.0.11'
  pod 'BanubaSDK', '1.0.15'
  pod 'BanubaSDKSimple', '1.0.15'
  pod 'BanubaSDKServicing', '1.0.15'
  pod 'VideoEditor', '1.0.15'
  pod 'lottie-ios', "3.1.8"
end

sample pod file without FaceAr:

source 'git@github.com:Banuba/specs.git'
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '11.0'
use_frameworks!

target 'Example' do
  pod 'BanubaARCloudSDK', '1.0.15'
  pod 'BanubaVideoEditorSDK', '1.0.15'
  pod 'BanubaAudioBrowserSDK', '1.0.15'
  pod 'BanubaMusicEditorSDK', '1.0.15'
  pod 'BanubaOverlayEditorSDK', '1.0.15'
  pod 'BanubaSDKSimple', '1.0.15'
  pod 'BanubaSDKServicing', '1.0.15'
  pod 'VideoEditor', '1.0.15'
  pod 'lottie-ios', "3.1.8"
end

Trimmer after the camera

Trim the video that you recorded. Previously trimmer was available only for gallery videos, now also for the camera. This feature is enabled by default. To disable it change property supportsTrimRecordedVideo to false in FeatureConfiguration.

Change background with an image from gallery

To enable this feature contact sales to have it in your token. To customize gallery media picker change default effectAdditionalMediaPickerConfiguration in RecorderEffectsConfiguration.

func createVideoEditorConfig() -> VideoEditorConfig {
  var config = VideoEditorConfig()
  ...
  config
    .recorderConfiguration
    .recorderEffectsConfiguration
    .effectAdditionalMediaPickerConfiguration
      .infoLabelConfiguration.text = "My custom Info Label text"
  ...
  return config
}

There is struct of this configuration:

public struct EffectAdditionalMediaPickerConfiguration {
  /// Gallery asset item configuration
  public var galleryAssetItemConfiguration: GalleryAssetItemConfiguration
  /// Info label configuration
  public var infoLabelConfiguration: TextConfiguration
  /// Allow gallery access button configuration
  public var allowGalleryAccessButtonConfiguration: BanubaButtonConfiguration
  /// No media label configuration
  public var noMediaLabelConfiguration: TextConfiguration
  /// Open gallery button configuration
  public var openGalleryButtonConfiguration: ImageButtonConfiguration
}

To customize list of gallery items use this configuration:

public struct GalleryAssetItemConfiguration {
  /// Duration label configuration
  public var durationConfiguration: TextConfiguration
  /// Corner radius
  public var cornerRadius: CGFloat
  /// Selection color
  public var selectionColor: UIColor
  /// borderWidth: CGFloat
  public var borderWidth: CGFloat
  /// Normal image configuration
  public var normalImage: ImageConfiguration
  /// Loading remote asset activity indicator configuration
  public var activityIndicatorConfiguration: SmallActivityIndicatorConfiguration
}

HEVC codec

The intermediate video will encode with HEVC (H.265) encoder if it is available on the current device. Better quality, low size, better performance.
For recorded videos using SDK camera HEVC is enabled by default. To control this behavior change useHEVCCodecIfPossible in RecorderConfiguration.

func createVideoEditorConfig() -> VideoEditorConfig {
  var config = VideoEditorConfig()
  ...
  // Default is true
  config.recorderConfiguration.useHEVCCodecIfPossible = false
  ...
  return config
}

To control using this codec for exported videos use the property useHEVCCodecIfPossible in ExportVideoConfiguration

...
let exportVideoConfigurations: [ExportVideoConfiguration] = [
  ExportVideoConfiguration(
    fileURL: firstFileURL,
    quality: .auto,
    useHEVCCodecIfPossible: true,
    watermarkConfiguration: watermarkConfiguration
  )
]
videoEditorSDK?.exportVideosWithCoverImage(
  using: exportVideoConfigurations, 
  completion: { ...

Or if you are using another export method change this property in

...
func createVideoEditorConfig() -> VideoEditorConfig {
  var config = VideoEditorConfig()
  ...
  // Default is false
  config.editorConfiguration.useHEVCCodecIfPossible = true
  ...
  return config
}

...

  videoEditorSDK?.exportVideoWithCoverImage(
    fileURL: fileURL,
    completion: { ...

Localized strings

There are few new localized fields that your should add to localized.strings files. Otherwise localized keys will be displayed.

/* The name of the button, by clicking on which you can refuse missed permission alert message */
"Settings.Close" = "Close";
/* Voice effect button title */
"MusicEditor.VoiceEffect" = "Effect";
/* Gallery custom All Photos title */
"BanubaVideoEditor.Gallery.AllPhotosTitle" = "All Photos";
/* Gallery Recent Photos title */
"BanubaVideoEditor.Gallery.RecentPhotosTitle" = "Recent";
/* Speed screen info */
"Recording speed %@" = "Recording speed %@";
/* Gallery image tab title */
"BanubaVideoEditor.Gallery.ImageTabTitle" = "Image";
/* Gallery video tab title */
"BanubaVideoEditor.Gallery.VideoTabTitle" = "Video";
/* In-camera beautification (facial correction) enabled */
"Beautifier on" = "Beautification on";
"Beautifier off" = "Beautification off";
/* Used in alert with Yes and No options when resetting slideshow. */
"Do you want to reset slideshow?" = "Do you want to reset slideshow?";
/* Speed screen info */
"Recording speed %@" = "Recording speed %@";
/* Music info alert */
"The soundtrack is alreay in use" = "The soundtrack is already in use";

// MARK: - Effect additional media picker text resource

/* No media files found in gallery for adding to the effect */
"com.banuba.videoEditor.recorder.additionalEffects.NoMediaFound" = "No media found";

/* No media files found in gallery for adding to the effect */
"com.banuba.videoEditor.recorder.additionalEffects.AllowAccess" = "Allow Access";
/* Helpers info message for changing video background */
"com.banuba.videoEditor.recorder.additionalEffects.selectMediaToChangeBackgroundMessage" = "Select media to change the background:";
/* Helpers info message for providing access to a user gallery */
"com.banuba.videoEditor.recorder.additionalEffects.allowAccesToChangeBackgroundMessage" = "Allow access to Gallery to change the background";

There is updated value for Overlay Editor:

"OverlayEditor.Do you want to reset all?" = "Discard changes?";

If you are using BanubaAudioBrowserSDK please update the following keys:

// MARK: - AudioBrowser

/* No internet connection title in alert */
"AudioBrowser.noInternetConnection" = "No internet connection";
/* Message for user if No internet connection */
"AudioBrowser.checkConnectionMessage" = "Please, check your connection and try again";
/* Retry button title */
"AudioBrowser.retry" = "Retry";
/* Allow access message */
"AudioBrowser.allowAccessMessage" = "To use your own music, allow access to Apple Music library, please.";
/* Allow button title */
"AudioBrowser.allowAccess" = "Allow Access";
/* My files button title */
"AudioBrowser.myFiles" = "My Files";

0.0.13

01 Dec 13:04
Compare
Choose a tag to compare