IOS Swift AVMutableComposition Видео - черные рамки посередине
Я пытаюсь объединить список видео в одно видео. Это происходит по нажатию кнопки.
Теперь первый раз это работает, но во второй раз я получаю черные рамки в середине двух объединенных видео.
Вот код:
open var arrayVideos = [AVAsset]()
open var layerInstructionsArray = [AVVideoCompositionLayerInstruction]()
open var completeTrackDuration: CMTime = CMTimeMake(0, 1)
let mixComposition = AVMutableComposition()
let track = mixComposition.addMutableTrack(withMediaType: AVMediaTypeVideo, preferredTrackID: Int32(kCMPersistentTrackID_Invalid))
let audioTrack = mixComposition.addMutableTrack(withMediaType: AVMediaTypeAudio, preferredTrackID: kCMPersistentTrackID_Invalid)
for index in 0..<arrayVideos.count {
let avAsset = arrayVideos[index]
let clipAudioTrack: AVAssetTrack = avAsset.tracks(withMediaType: AVMediaTypeAudio)[0]
do {
try track.insertTimeRange(CMTimeRangeMake(kCMTimeZero, avAsset.duration), of: avAsset.tracks(withMediaType: AVMediaTypeVideo)[0], at: index == 0 ? kCMTimeZero:completeTrackDuration)
try? audioTrack.insertTimeRange(CMTimeRangeMake(kCMTimeZero, avAsset.duration), of: clipAudioTrack, at: index == 0 ? kCMTimeZero:completeTrackDuration)
} catch _ {
print("Failed to load track")
}
completeTrackDuration = CMTimeAdd(completeTrackDuration, avAsset.duration)
let firstInstruction = videoCompositionInstructionForTrack(track: track, asset: avAsset)
firstInstruction.setOpacity(0.0, at: completeTrackDuration)
self.layerInstructionsArray.append(firstInstruction)
}
let mainInstruction = AVMutableVideoCompositionInstruction()
mainInstruction.timeRange = CMTimeRangeMake(kCMTimeZero, completeTrackDuration)
mainInstruction.layerInstructions = layerInstructionsArray
let mainComposition = AVMutableVideoComposition()
mainComposition.instructions = [mainInstruction]
mainComposition.frameDuration = CMTimeMake(1, 30)
mainComposition.renderSize = CGSize(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height)
Любая идея, в чем может быть проблема. Пожалуйста помоги.