1

需要您對我遇到的方案提出建議/建議。我正在開發一個擁有12-15個視頻的iPhone應用程序。用戶可以下載任何視頻,然後在iPhone上播放。問題是我正在將視頻寫入文檔目錄。它適用於小視頻(〜50 MB),但當選擇較大的視頻時(約250 MB),由於內存警告不足,應用程序會崩潰。iPhone將大尺寸視頻下載到文檔目錄(〜300 mb)


我知道應用程序由於內存佔用增加而崩潰。有沒有其他方法可以更有效地(大塊地)下載大文件,而內存利用率更低?否則,我正在考慮僅爲小視頻提供下載選項,並且僅爲大尺寸視頻提供流式播放選項。

+0

顯示您用於下載和寫入文件的代碼。 – rmaddy

+0

您是否正在使用WiFi – meda

+1

下載如果您將下載緩衝區保存在「NSData」對象中,則應該將其寫入文件中,並保留新數據。 –

回答

2

1)使用異步NSUrlConnection對象下載視頻。

2)創建一個文件來預先保存視頻,獲取文件描述符,並在打開的文件上設置F_NOCACHE標誌,以便不佔用磁盤緩存中的內存。 3)當您在委託調用中獲得小數據塊作爲NSData對象時,將它們追加到打開的文件中。

4)當下載完成時,關閉文件。

您可能想驗證設備是否有足夠的空間來接受下載;有關於如何做到這一點的帖子。