Here is an example of how to create a slideshow from the image for the Video Editor SDK IOS (opening from editor screen)
import Foundation
import BanubaVideoEditorCore
class VideoEditorImageItem: VideoEditorImageAssetProtocol {
var duration: TimeInterval
var image: CGImage?
var shouldUseImageEffect: Bool
init(duration: TimeInterval, url: URL, shouldUseImageEffect: Bool) {
self.duration = duration
self.shouldUseImageEffect = shouldUseImageEffect
self.image = loadCGImage(from: url)
}
func loadCGImage(from url: URL) -> CGImage? {
guard let imageSource = CGImageSourceCreateWithURL(url as CFURL, nil) else {
return nil
}
return CGImageSourceCreateImageAtIndex(imageSource, 0, nil)
}
func getOrPreloadImage() -> CGImage? {
return image
}
func unloadImage() {}
}
class Slideshow {
func makeSlideshow(banubaToken: String, url: URL, completion: @escaping ((URL?, String?) -> Void)) {
guard let videoEditorService = VideoEditorService(token: banubaToken),
let exportSDK = VEExport(videoEditorService: videoEditorService)
else {
completion(nil, "Failed to init Export SDK")
return
}
exportSDK.exportSlideshowImages(
[VideoEditorImageItem(duration: 4.0, url: url, shouldUseImageEffect: false)],
videoResolution: .hd1280x720,
progressHandler: nil
) { url, error in
if let error {
completion(nil, error.localizedDescription)
} else {
completion(url, nil)
}
}
}
}