在我的應用程序中,我渲染從用戶照片中檢索的圖像生成的視頻。我已經建立了一個AVAssetwriter與AVAssetwriterInput AVAssetWriterInputPixelBufferAdaptor。我能夠將從用戶庫檢索到的ALAsset對象轉換爲CVPixelBuffers,並將它們添加到視頻中,然後視頻保存爲mp4。將所有圖像添加到視頻是在後臺線程上完成的,後臺線程每幀發送一個通知給主線程,因此可以更新該接口。所有這一切運作良好,我從應用程序中獲得一個可用的電影文件。當應用程序在渲染過程中進入背景時,AVAssetWriter失敗
現在我的問題是,當用戶進入另一個應用程序,再次變爲活動狀態後,ALAssetWriter的狀態更改爲「失敗」,我無法將其他圖像添加到電影文件中。首先,我想我可能不得不結束當前的作者會議,並重新開啓一個新的應用程序,一旦該應用程序再次變得活躍,但這似乎沒有幫助。
我只是想知道當我希望用戶輸入其他應用程序時的一般方法。如果渲染可以在後臺繼續,最好的解決方案是。我想我需要一個來自UIApplication的後臺線程。但現在我很高興,如果渲染可能會繼續恢復我的應用程序後繼續。
我現在不會發布任何代碼,因爲它確實很多,我的問題可能是概念性的。如果您需要查看代碼,我會發布它。
編輯1: 在iOS 4.3和iOS 5上測試過。我在其他應用程序(如iTimelapse)上看過背景渲染,但我不確定它們使用哪個框架。
編輯2: 我現在有一個蘋果devforum成員的信息,AVAssetWriter不能在後臺工作。那麼有沒有其他框架能夠渲染QuickTime視頻?
當應用程序轉到後臺時,AVAssetWriter是否有可能失去與它正在寫入的文件的連接? – huesforalice