2016-08-11 63 views
2

我有以下代碼塊,它利用GPUImage2庫實時過濾視頻。這個想法是能夠基於按鈕點擊循環這些過濾器。但是隻會應用一個過濾器,每當我嘗試循環到下一個過濾器時,它都不會改變。這裏是我的功能: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() 
} 

謝謝你的幫助!

回答

2

在切換到另一個之前,您必須從renderView和攝像頭上斷開先前的濾鏡。

在向鏈中添加新過濾器之前,請在攝像機上調用removeAllTargets()和上一個過濾器(您可能希望有一個實例變量來存儲上一個過濾器以執行此操作)。 FilterShowcase的Mac版本證明了這一點。