AVFoundation -> 用动画覆盖记录相机视频
Posted
技术标签:
【中文标题】AVFoundation -> 用动画覆盖记录相机视频【英文标题】:AVFoundation -> record camera video with animated overlay 【发布时间】:2021-08-02 18:04:16 【问题描述】:在我的应用程序中,我正在使用 AVFoundation 录制相机输出。我不仅要保存相机输出,还要保存在相机表面上呈现的 GUI 布局(覆盖)。
我正在 GUI 层上执行一些基本动画(显示和隐藏 UIView 和 UIProgressView 动画)。
那么有没有可能用动画覆盖记录相机输出?
我的研究:
1.) https://www.raywenderlich.com/2734-avfoundation-tutorial-adding-overlays-and-animations-to-videos
后处理不是一种选择。而且这个解决方案不适用于我的问题。
2.) iPhone Watermark on recorded Video. 所以可以加水印。也许有可能从相机捕获帧,从覆盖捕获帧,然后将捕获的相机帧与捕获的覆盖帧重叠? :(
【问题讨论】:
【参考方案1】:我的解决方案(我现在正在研究它)是创建一个子类 CALayer 的对象并将其添加到您的预览 uiview.layer。
protocol VideoCameraLayer
func playAnimation()
func stopAnimation()
class CircleFaceLayer: : CALayer,VideoCameraLayer
init()
//... add sublayers to this layer or whatever you need
func playAnimation()
//Add animation/s to your layer/sublayers
func stopAnimation()
//Pause animation/s to your layer/sublayers
您可以在您的 avassetexportsession.animatioToll 和您的 UIView 的预览层中使用此对象和子分层:
let animatedLayer:VideoCameraLayer = CircleFaceLayer()
self.view.layer.addSublayer(animatedLayer)
【讨论】:
以上是关于AVFoundation -> 用动画覆盖记录相机视频的主要内容,如果未能解决你的问题,请参考以下文章
iOS开发进阶 - 用AVFoundation自定义视频录制功能
IOS音频1:之采用四种方式播放音频文件AudioToolbox AVFoundation OpenAL AUDIO QUEUE