2011-05-07 134 views
0

我在應用商店中有三個基於相機的應用程序(可以拍攝靜態圖片),並且得到了有關UIImagePickerController界面非常慢的反饋 - 我不能否認這一點。因此,爲了提高應用程序的性能,我開始嘗試使用WWDC 2010中的AVCam Demo源代碼。從WWDC 2010包裝AVCam演示

由於AVFoundation框架不與UI Kit交互,因此我已成功地將視圖演示。我能夠成功地在視圖控制器之間轉換。我修改的唯一東西是用Exit按鈕替換Record按鈕(要退出到包裝視圖控制器)

修改後的應用程序在第一次會議期間工作正常(包裝 - >演示)如果我退出演示到包裝,並回到演示第二次,預覽層中的視頻幀凍結後一秒鐘或兩秒鐘。該應用程序本身不凍結 - 只是視頻被凍結。此時,所有UI按鈕都處於活動狀態。但是,當我點擊「還是」按鈕來捕捉圖像,我收到以下錯誤警報:

操作無法完成(AVFoundationErrorDomain錯誤 - 11800)

這不是在原來的被複制演示代碼 - 因爲您無法關閉並重新打開會話。所以,我想知道是否與我在測試中從會話中「退出」的方式有關。下面是我在演示代碼中添加的「退出」操作:

- (IBAction)exit:(id)sender 
{ 
    [[self captureManager] stopRecording]; 
    [self dismissModalViewControllerAnimated:YES]; 
} 

這是否足夠 - 或者我錯過了什麼?

問候,山姆。

回答

1

清理捕獲會話有點問題,因爲有些異步調用沒有提醒他們什麼時候完成。

嘗試停止並釋放在這個問題建議: How to properly release an AVCaptureSession (採取與多數選票的溶液)

如果它不能幫助你可能需要在這裏發佈一些更多的代碼。你確定這就是你改變的一切嗎?

祝你好運!

Oded。