GPUImage视频滤镜设置亮度不起作用 [英] GPUImage video filter set brightness not working

查看:245
本文介绍了GPUImage视频滤镜设置亮度不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

//整个代码看起来很好,但是movieWriter - setCompletionBlock行没有被编译。不知道它有什么问题。

//The whole code is looking fine, but movieWriter - setCompletionBlock lines are not getting compiled. Doesn't know what is the problem in it.

我过去3天试图解决这个问题,但我没有成功解决问题。

I tried to solve out since last 3 days but am not getting it successfully working.

-(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");        
});

这篇关于GPUImage视频滤镜设置亮度不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆