Ios GPUImage视频过滤器设置亮度不工作
//整个代码看起来不错,但是movieWriter-setCompletionBlock行没有被编译。不知道里面有什么问题 我试图解决,因为过去3天,但没有得到它成功地工作Ios GPUImage视频过滤器设置亮度不工作,ios,objective-c,gpuimage,Ios,Objective C,Gpuimage,//整个代码看起来不错,但是movieWriter-setCompletionBlock行没有被编译。不知道里面有什么问题 我试图解决,因为过去3天,但没有得到它成功地工作 -(IBAction)setBrightness:(id)sender { sleep(1); NSURL *sampleURL = [NSURL URLWithString:_videoURLPath]; movieFile = [[GPUImageMovie alloc] initWit
-(IBAction)setBrightness:(id)sender
{
sleep(1);
NSURL *sampleURL = [NSURL URLWithString:_videoURLPath];
movieFile = [[GPUImageMovie alloc] initWithURL:sampleURL];
movieFile.runBenchmark = YES;
movieFile.playAtActualSpeed = NO;
filterView = (GPUImageView *)gpuView;
filter=[[GPUImageBrightnessFilter alloc]init];
[movieFile addTarget:filter];
[filter addTarget:filterView];
[(GPUImageBrightnessFilter *)filter setBrightness:brightValue];
unlink([pathToMovie UTF8String]); // If a file already exists, AVAssetWriter won't let you record new frames, so delete the old movie
NSURL *movieURL = [NSURL fileURLWithPath:pathToMovie];enter code here
movieWriter = [[GPUImageMovieWriter alloc] initWithMovieURL:movieURL size:CGSizeMake(320.0, 320.0)];
[filter addTarget:movieWriter];
movieWriter.shouldPassthroughAudio = NO;
movieFile.audioEncodingTarget = movieWriter;
[movieFile enableSynchronizedEncodingUsingMovieWriter:movieWriter];
[movieWriter startRecording];
[movieFile startProcessing];
[movieWriter setCompletionBlock:^{
[filter removeTarget:movieWriter];
[movieWriter finishRecording];
dispatch_async(dispatch_get_main_queue(), ^{
[_toolDelegate stringPathOfFilteredVideoFromTool:pathToMovie];
[self.navigationController popViewControllerAnimated:YES];
});
}];
}
这对我有用
[movieWriter setCompletionBlock:^{
[filter removeTarget:movieWriter];
[movieWriter finishRecording];
}];
只需将上面的替换为下面的。
dispatch_async(dispatch_get_main_queue(), ^{
[filter removeTarget:movieWriter];
[movieWriter finishRecording];
NSLog(@"aa2233453546565");
});
我也有同样的问题。