ios - 基本 GPUImage iOS7 应用程序视频卡住/不工作

标签 ios objective-c xcode5 gpuimage

我是 GPUImage 的新手,我将 GPUImage 添加到默认单 View 模板 Xcode 5.1.1 应用程序。我成功地使用了静态 GPUImage 库,并且正在尝试自述文件中的示例。我有 iO S7.1 作为基础 SDK。该应用程序编译并加载,视频只是卡住。无论有没有过滤器,它都会卡住。 我该如何解决?我想显示应用了滤镜的实时相机预览

github repo 中包含的示例可以正常编译和运行。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    GPUImageVideoCamera *videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset352x288 cameraPosition:AVCaptureDevicePositionBack];
    videoCamera.outputImageOrientation = UIInterfaceOrientationPortrait;

    GPUImageFilter *customFilter = [[GPUImageSepiaFilter alloc]init];
    GPUImageView *filteredVideoView = [[GPUImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320, 320)];
    [self.view addSubview:filteredVideoView];
    // Add the view somewhere so it's visible


    [videoCamera addTarget:customFilter];
    [customFilter addTarget:filteredVideoView];

    [videoCamera startCameraCapture];
}

这是我运行 iOS 7.1 的 iPhone 5 的屏幕截图。

camera with frozen video

最佳答案

它卡住了,因为您的 GPUImageVideoCamera 正在被释放。您将其创建为局部变量,而不是实例变量或属性,因此一旦您的设置方法完成,ARC 就会释放它。这将拆除其余的图像处理管道。

您需要将 GPUImageVideoCamera 实例设为类的属性或实例变量,以便在设置方法之外对其进行强引用。相机需要在该方法之外持续存在,因此您需要确保它确实存在。相机将对其下游的任何内容保持强烈的引用,因此您不需要对过滤器执行相同的操作,除非您想在某个时候调整它们。

关于ios - 基本 GPUImage iOS7 应用程序视频卡住/不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25434652/

相关文章:

iphone - 越狱 - 添加图标到状态栏

ios - 如何在菜单向上或向下滑动时更改 UIButton 标签文本?

crash - iOS7-UITabBarController seletedIndex崩溃

ios - SceneKit 计量单位

ios - 我的应用程序中的 PLCrashReporter 没有获取符号代码。我正在使用 PLCrashReporter 进行崩溃分析

iphone - 读取连续写入的全局变量

ios - 检查respondsToSelector 中的属性

ios - 带有 RestKit v0.21.0 的 XCode 5 项目无法编译

ios - 使用 Phonegap 实现 iOS 的 PushPlugin

ios - 创建触发警报 View Controller 的选项卡栏项目