2014-10-04 142 views
0

將GPUImage框架添加到IOS項目中的時間正在變成幾天。現在我已經開始工作了我正在嘗試來自Sunset Lake Software頁面的示例過濾實時視頻代碼。該應用程序構建失敗,下面的紅色錯誤:thresholdfFilter‘將GPUImage框架添加到IOS項目

GPUImageVideoCamera *videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack]; 
GPUImageFilter *customFilter = [[GPUImageFilter alloc] initWithFragmentShaderFromFile:@"CustomShader"]; 
GPUImageView *filteredVideoView = [[GPUImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, 768, 1024)]; 


// problem here 
[videoCamera addTarget:thresholdFilter]; 

[customFilter addTarget:filteredVideoView]; 

[videoCamera startCameraCapture]; 

的iPad2上使用的Xcode 6.0.1和測試應用程序與IOS 8.0.2「未申報的用’ - 如果需要,我可以張貼屏幕投我如何看待這個框架。

+0

您是否嘗試過使用CocoaPods? – AdamPro13 2014-10-04 17:48:16

+0

@亞當 - 太棒了!非常感謝你向我介紹CocoaPods。我現在已經開始運行GPUImage,沒有任何問題。對於其他人來說,我發現了一個很棒的youTube教程 - http://www.youtube.com/watch?v=9_FbAlq2g9o。再次感謝。 – pete 2014-10-05 08:36:17

+0

完全沒問題。我發現CocoaPods的那一天改變了我的生活。 – AdamPro13 2014-10-06 04:50:29

回答

0

首先,我在宣佈框架的最初博客文章中編寫的代碼不應該被複制以用於現代版本的框架。該初稿是兩年前撰寫的,並未反映API的當前狀態。事實上,我剛剛刪除了原始文章中的所有代碼,並指導人們遵守GitHub頁面上的更新說明。感謝您的提醒。其次,你上面描述的問題是你試圖使用一個名爲thresholdFilter的變量,而沒有定義這樣的變量。這不是框架問題,編譯器不知道你指的是什麼。

第三,上面的代碼不會工作的另一個原因:你不堅持你的相機實例。你在本地定義它,而不是將它分配給封裝類的實例變量。這會導致ARC在您的上述設置方法完成後立即釋放該攝像頭,導致黑屏或崩潰。您需要創建一個實例變量或屬性,並將相機分配給該相機,以便對其進行強有力的引用。