Closed NeverAgain11 closed 6 years ago
Hum.... 似乎是大于 16 个 track,从第 17 个开始,就没有显示了。奇怪的问题,我看看哪里是不是有未知的坑
已修复,可用最新 commit 试试
嗯,问题解决了
我看了代码,只对 timeLine
的 videoChannel
和 audioChannel
修复了这个问题。
timeLine
的 overlays
应该用于表情之类的内容,如果添加的数量过多的话,track
的数量应该也有这个问题吧。
overlays
的确有数量过多的问题,
添加表情、贴纸或者文字之类的可以实现 Timeline
里的 passingThroughVideoCompositionProvider
属性,根据播放时间点,显示对应的内容。
overlays
主要用于支持原生的多个视频显示,不过目前看来 AVFoundation 的限制,无法添加超过 16 个。
DEBUG 后发现
VideoCompositionInstruction
的方法open func apply(request: AVAsynchronousVideoCompositionRequest) -> CIImage?
在 16 秒后request
的sourceTrackIDs
为nil
,调用sourceFrame(byTrackID trackID: CMPersistentTrackID)
也返回 nil。求助问题原因所在。
下面是我通过 images 创建 AVPlayerItem 的代码: