最近公司让给拍摄加美颜滤镜,自热而然就开始了GPUImage之旅,集成好运行美颜效果也不错,但点击时候发现闪一下,当存储到本地后发现录制开始那一瞬间是黑屏。
- - - - - - - - - - 以下是解决方法 - - - - - - - - - -
在 GPUImageMovieWriter.m 中添加以下代码
static BOOL allowWriteAudio =NO;
- (void)startRecording;
{
allowWriteAudio=NO; // 添加这句
... ...}
- (void)processAudioBuffer:(CMSampleBufferRef)audioBuffer;
{
if(!allowWriteAudio) {// 添加这个判断
return;
}
... ...
}
elseif(self.assetWriter.status==AVAssetWriterStatusWriting)
{
... ...
if(![assetWriterPixelBufferInputappendPixelBuffer:pixel_bufferwithPresentationTime:frameTime])
NSLog(@"Problem appending pixel buffer at time: %@",CFBridgingRelease(CMTimeCopyDescription(kCFAllocatorDefault, frameTime)));
allowWriteAudio=YES;// 添加这句
}
最后在你创建美颜相机方法后面加一句
[_videoCamera addAudioInputsAndOutputs];
over!
当然,最好不要直接修改框架里面的东西哦!否则更新后就无法维护了😆 ,自己fork去吧,要不就用我的
pod'GPUImage', :git =>'https://github.com/sunhua163/GPUImage.git'