核心代码如下
let url = URL(fileURLWithPath: "\(NSTemporaryDirectory())liyng_demo.mp4")
// unlink非常重要,他将重复的路径删除,避免出现经常出现的路径问题
unlink(url.path)
movieWriter = GPUImageMovieWriter(movieURL: url, size: CGSize(width: 640.0, height: 480.0));
movieWriter.encodingLiveVideo = true
movieWriter.setHasAudioTrack(true, audioSettings: nil)
filter.addTarget(movieWriter)
self.videoCamera.audioEncodingTarget = self.movieWriter
self.movieWriter.startRecording()
在这里我强调一下,我在开发的时候,被一个错误困扰了好几天
是
# [AVAssetWriter startWriting Cannot call method when status is 3]
解释一下,这个问题出现的原因是文件路径出现了问题,要么有重复的路径不能存储,要么创建初始文件失败,解决办法就是检查一下你的获取路径的方法是不是和我的一样,同样的一定要记住使用unlink,去除重复路径。
以上。