Изменяемая композиция: небольшой переход между сегментами видео при воспроизведении

#ios #swift #video

#iOS #swift #Видео

Вопрос:

Я использую AVMutableComposition для воспроизведения видео, которое разделено на разные непрерывные файлы. Однако при воспроизведении происходит небольшой скачок (короткий черный экран) между 2 последовательными сегментами.

Есть ли какой-нибудь способ предотвратить это?

 import UIKit
import AVFoundation

class KLMasterPlayerViewController: KLPlayerViewController {

    let comp:AVMutableComposition = AVMutableComposition()
    var playerItem:AVPlayerItem!

    init() {
        super.init(nibName: nil, bundle: nil)

        self.initComp()
        self.playerItem = AVPlayerItem(asset: self.comp)
        self.player = AVPlayer(playerItem: self.playerItem)

    }

    private func initComp() {

        let segments = MasterVideo.sharedInstance.videoSegments

        var insertedTime:Double = 0.0

        for segment in segments {

            do {

                let asset = segment.getURLAsset()

                try comp.insertTimeRange(CMTimeRangeMake(kCMTimeZero,asset!.duration), ofAsset: asset!, atTime: CMTimeMake(Int64(insertedTime * 10000), 10000))

                insertedTime  = segment.getDuration()

            } catch {

            }

        }
    }


}
  

Комментарии:

1. возможно, ваше видео содержит второй пробел перед воспроизведением, просто проверьте.

2. Спасибо за предложение, но нет, все видеофайлы в порядке, без черного цвета.

Ответ №1:

Я нашел ответ: Swift неправильно рассчитывал продолжительность моих видеоресурсов. Для каждого из них было разное изображение 1. Принудительное увеличение продолжительности сегментов видео сделало это прекрасным и безупречным.

Рад, что это решено!

Большое спасибо vaibhav за попытку помочь.