大家好,我一直在创建一个iOS视频编辑应用程序。我已经创建了一个由两个layers.now组成的AVVideoComposition,我想在AVPlayer.as中播放这个组合,AVVideoComposition不是一个资产,所以我如何在AVPlayer中发挥这个功能呢?下面是我一直在尝试的示例代码,我听说过AVVideoCompositionCoreAnimation,但这也不起作用。
let backgroundLayer = CoverView.layer
let videoLayer = VideoView.layer
let parentLayer = CALayer()
parentLayer.frame = CGRect(x:20.0 , y: 20.0, width: CoverView.frame.width, height: CoverView.frame.height)
parentLayer.addSublayer(backgroundLayer)
parentLayer.addSublayer(videoLayer)
let composition = AVMutableVideoComposition()
composition.animationTool = AVVideoCompositionCoreAnimationTool(postProcessingAsVideoLayer: videoLayer, in: parentLayer)发布于 2021-09-22 07:03:41
您可以在AVPlayer中加入AVPlayerItem,这允许将组合作为输入,这样就可以不导出就可以播放。
let item = AVPlayerItem(asset: composition)
let player = AVPlayer(playerItem: item)发布于 2019-11-27 10:50:40
您需要一个用于this.in AVExportSession的导出方法,有一个方法导出了finish.in,这个方法可以为您的视频file.like生成一个url
func exportDidFinish(_ session: AVAssetExportSession) {
guard
session.status == AVAssetExportSession.Status.completed,
let outputURL = session.outputURL
else {
return
}
self.avplayer = AVPlayer(url: outputURL)
playerController.player = self.avplayer
self.addChild(playerController)
view.addSubview(playerController.view)
playerController.view.frame = view.bounds
playerController.showsPlaybackControls = false
avplayer.isMuted = false发布于 2022-10-31 20:57:26
你可以玩AVMutableComposition,但不能玩AVMutableVideoComposition。但是您可以使用AVMutableVideoComposition作为AVPlayerItem的videoComposition属性。
let composition = AVMutableComposition()
//add and configure tracks here
let videoComposition = AVMutableVideoComposition()
videoComposition.animationTool = AVVideoCompositionCoreAnimationTool(postProcessingAsVideoLayer: videoLayer, in: parentLayer)
let item = AVPlayerItem(asset: composition)
item.videoComposition = videoComposition
let player = AVPlayer(playerItem: item)https://stackoverflow.com/questions/59067996
复制相似问题