2016-12-13 72 views
2

如果應用程序需要數百個音頻文件(它們很小,5-25KB),將它們放在資產目錄或文檔目錄中會更好嗎?我已經嘗試了這兩種方法,但它們看起來並沒有太大差別,無論是哪種方式管理項目導航器中的數百個文件都很麻煩,而且它們都是相同的應用程序文件大小。將iOS應用程序音頻文件應用程序存儲在xcassets或文檔目錄中?

+0

您希望將這些文件與您的應用程序一起使用,以便在用戶首次安裝應用程序時使用這些文件?或者當用戶第一次運行你的應用時,你的應用下載的這些文件是? – rmaddy

+1

你確定你是指文件目錄嗎?這是一個讀/寫目錄,它是在第一次啓動應用程序時創建的,爲空。資產目錄是隻讀的,它的內容存儲在應用程序包中。如果這些聲音文件隨應用程序一起提供,那麼您必須將它們從軟件包中複製到文檔目錄中,如果這是您想要保留它們的地方。 –

+0

@rmaddy,這些文件包含在應用程序中。 – Steve

回答

1

到目前爲止,我發現一件事影響了是否將音頻文件放在應用程序包中,或將其放入應用程序包的資產目錄部分。

將音頻文件放入資產目錄中時,它可用作數據,但沒有URL。據我現在瞭解,如果你想要一個URL,你必須提取數據並創建一個文件,這是雙重工作。

如果您只有在將音頻文件放入應用程序包中時可以自動獲取URL,它會爲您提供更多選項。就像在AVPlayerItem中使用AVQueuePlayer一樣。 AVPlayerItem只需要一個URL,而不是數據。如果您想要從資產目錄中一個接一個地播放音頻文件,那麼需要更多的工作,您必須爲AVAudioPlayerDelegate編寫代碼,而使用AVQueuePlayer時,您只需提供一個AVPlayerItems數組。

我懷疑可能有更多的優點有一個可以參考的URL並且沒有看到資產目錄的優勢,所以我的觀點可能會有所變化。

2

由於您希望將音頻文件與應用程序捆綁在一起,因此無法使用「文檔」文件夾。 Documents文件夾的使用是一個運行時功能,只能在您的應用程序從App Store安裝並由用戶運行後才能使用。

要將這些文件包含在您的應用程序中以便它們立即存在,它們必須是應用程序資源包的一部分。無論是使用資產目錄還是簡單地將它們存儲在軟件包中,都取決於您,但無法將它們打包到Documents文件夾中,因爲在用戶首次運行該應用程序之前沒有Documents文件夾。

+0

我的錯誤,出於某種原因,當我將音頻文件複製到項目導航器中時,我認爲它創建了文檔目錄中的文件。它是捆綁的一部分。那麼在捆綁和目錄中是否有區別? – Steve

相關問題