#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 за попытку помочь.