我正在使用AVMutableComposition播放分割成不同连续文件的视频。但是,播放时,两个连续的片段之间会有一个小的跳跃(黑屏)。

有什么办法可以防止这种情况?

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 {

            }

        }
    }


}

最佳答案

我找到了答案:Swift无法正确计算我的视频资产的时长。对于每个人,都有一张不同的图片。
通过强制视频片段持续时间,可以做到完美无缺。

很高兴解决了!

非常感谢vaibhav的帮助。

关于ios - AVMutableComposition:播放时视频片​​段之间的小跳转,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40106162/

10-12 01:47