此代码曾用于在iOS9上为视频添加水印和文本,但由于iOS10它不再起作用.已经提交了一个iOS 10错误,但Apple没有回答.我无法实现任何解决方法来在视频上添加水印和文字.使用此代码有时会成功导出视频,但大部分时间都不会导出.
我应该如何使用,AVVideoCompositionCoreAnimationTool以便它像在iOS9上一样工作.
let videoComposition: AVMutableVideoComposition = AVMutableVideoComposition()
videoComposition.frameDuration = CMTimeMake(1, 60)
videoComposition.renderSize = CGSize(width: clipVideoTrack.naturalSize.height, height: clipVideoTrack.naturalSize.height)
let instruction: AVMutableVideoCompositionInstruction = AVMutableVideoCompositionInstruction()
instruction.timeRange = CMTimeRangeMake(kCMTimeZero, CMTimeMakeWithSeconds(60, 30))
// transformer is applied to set the video in portrait otherwise it is rotated by 90 degrees
let transformer: AVMutableVideoCompositionLayerInstruction =
AVMutableVideoCompositionLayerInstruction(assetTrack: clipVideoTrack)
let t1: CGAffineTransform = CGAffineTransform(translationX: clipVideoTrack.naturalSize.height, y: -(clipVideoTrack.naturalSize.width - clipVideoTrack.naturalSize.height)/2)
let t2: CGAffineTransform = t1.rotated(by: CGFloat(M_PI_2))
var finalTransform: CGAffineTransform = t2
transformer.setTransform(finalTransform, at: kCMTimeZero)
instruction.layerInstructions …Run Code Online (Sandbox Code Playgroud) AVPlayer 将随机播放音频,而不是显示视频轨道...
AVPlayer在进行活动压缩会话时正确播放视频AVAssetExportSession:exportAsynchronouslyWithCompletionHandler现在失败了.它似乎会导致一些不稳定,直到应用程序进入后台并返回.
检查AVURLAsset视频播放失败时,即使没有视频输出,也有视频轨道.我也没有从压缩器或其他播放组件中得到任何错误......压缩会话返回后,问题就会发生一段时间.
我尝试过不同的单独线程但没有成功.
从iOS 10开始,似乎有些事情会导致两个进程之间发生某种冲突......