2

我有以下代码块,它利用 GPUImage2 库实时过滤视频。这个想法是能够根据按钮点击循环这些过滤器。但是只会应用一个过滤器,每当我尝试循环到下一个过滤器时,它都不会改变。这是我的功能:

func filterToggle() {
    switch(filterSelected) {
    case 0:
        let sketch = SketchFilter()
        camera! --> sketch --> renderView
        break;
    case 1:
        let toon = ToonFilter()
        camera! --> toon --> renderView
        break;
    default:
        break;
    }
    camera?.startCapture()
}

感谢您的任何帮助!

4

1 回答 1

2

在切换到另一个之前,您必须断开以前的过滤器与 renderView 和相机的连接。

在将新过滤器添加到链中之前,调用removeAllTargets()相机和前一个过滤器(您可能需要一个实例变量来存储前一个过滤器以便执行此操作)。Mac 版本的 FilterShowcase 演示了这一点。

于 2016-12-01T16:05:45.883 回答