2013-05-10 212 views
0

我在下載大文件的大小50MB以上在Amazon S3相關的項目。它停止沒有錯誤,並且由於它的大數據文件大小並將它同時下載,我將文件分塊成更小的存儲器。當我將塊數據以正確的順序追加到單個[NSMutableData] 中時,視頻將無法播放。關於這個主題相關的任何想法?..亞馬遜S3(AWS)NSMutableData

請幫助我,我坐在我的這個項目T_T整週的屁股..

+0

約你得到任何錯誤的詳細信息? – ale0xB 2013-05-10 08:29:35

+0

沒有錯誤。但下載的文件被切成塊之後損壞和合並使用NSMutableData – Cjames 2013-05-10 08:42:14

回答

1

你不應該使用管理僅RAM內存這個數據量。

你寧願使用輔助存儲器(即的NSFileManager)作爲解釋here 當你下載完的文件,正常播放。如果您確定用戶不再需要,只需在播放後立即刪除即可。

[編輯]

或者,你可能也只是使用的MPMoviePlayerController直接指向該URL。

+0

這是要下載的文件的內存,因爲下載的文件大小超過50MB更大,這就是爲什麼我塊文件成片,再重建......任何更好的方式來處理文件,以避免腐敗?感謝您的答覆 – Cjames 2013-05-10 09:15:10

1

你需要做的是先創建適當大小的文件。每個下載加載器對象都必須知道文件中的偏移量以放置數據,它應該在出現時寫入,而不是存儲在可變數據對象中。所以這將大大降低此操作的內存佔用量。

還有第二個組成部分:你必須設置打開文件的F_NOCACHE標誌,以iOS不保留在文件中緩存寫入。

隨着這兩個應該很好地工作。在開發過程中還要使用很多斷言,以便在出現問題時儘快知道 - 所以你可以糾正問題所在。