我需要編寫一個Android應用程序,該應用程序可以從互聯網下載聲音以供進一步使用。
我應該在哪裏儲存這些聲音? Sqlite是一個選項嗎?加載和播放這些文件的最佳方式是什麼?
在此先感謝。關於Android文件存儲的指導
回答
我建議將文件放在SD卡上,如果存在的話。但有一點需要注意的是,你永遠不應該爲SD卡編寫路徑。你可能會想沿着線做一些事情:
try {
//Create handle to SD card drectory
exportDirectory = new File(Environment.getExternalStorageDirectory() + "/MyDir");
//Verify export path exists. Create otherwise.
if (exportDirectory.exists() == false) {
if (exportDirectory.mkdirs() == false) {
//Directory structure could not be created.
//Message the user here
return false;
}
}
//Create handle to SD card file.
exportFile = new File(exportDirectory.getAbsolutePath() + "/whatever.mp3");
//Do whatever here
} catch(Exception e) {
//Exception. Message user and bail
return false;
}
從那裏轉移你想進入任何文件數據的一個簡單的事情。除非您計劃存儲大量額外信息,否則SQLite數據庫可能會對此應用程序造成過度的損害。除非將文件直接作爲BLOB存儲到數據庫中,否則用戶不會在應用程序運行之間混淆文件系統。雖然在MP3等的情況下,可以通過ID3標籤將曲目/藝術家類型信息直接存儲到文件中,而不是使用數據庫。
至於播放文件,請查閱有關其音頻API的Android文檔。這裏有很多很棒的信息,絕對比我在這裏重複的要多得多。
+1這是比我更好的答案。 – 2010-10-21 08:39:15
謝謝。這裏新的,所以看到這樣的評論真的很高興。 – phobos51594 2010-10-21 15:18:23
真的有幫助,謝謝@phobos – marcosbeirigo 2010-10-21 17:43:15
我說來存儲它們的最好的地方是在你自己的文件夾,即File("/sdcard/com.example.myapp/sound12345.mp3");
編輯在SD卡作爲單個文件:請參閱phobos51594's answer這是比我更加完整。
最好將它們直接保存在文件系統上。你爲什麼要將它存儲在數據庫中?有沒有額外的信息需要與它一起存儲? (如標題,說明等)?如果沒有,我會直接寫入文件系統。
基本上,你可以將它保存到你的應用程序的數據文件夾(共享首選項和sqlite數據庫也存儲在這裏)。然而,我個人認爲這應該是不鼓勵的,因爲它減少了/ data分區上的可用memonry(在Android手機上這已經太小了,大多數手機的數據空間不足50 MB(這意味着:少於50 MB應用程序,不能部分移動到SD卡)
如果可能的話,您應該總是安全地處理SD卡上的這些罰款,因此您不會降低數據分區的可用空間太多即使使用Froyo的A2SD功能,並非所有安裝的應用程序的數據都被移動到SD卡上,* .dex文件(通常在應用程序總大小的10%到50%之間)仍然保留在/ data分區上,所以設置和sqlite數據庫因此即使使用A2SD,空間也會越來越小,用戶安裝的應用越多
- 1. 關於將對象保存到文件的指導原則
- 2. 請求關於android主題的指導
- 3. 文件中關於Java本地存儲,Android的
- 4. SQL:存儲指導
- 5. 基於文件的文件存儲在android中
- 6. Android密鑰存儲文件
- 7. Android存儲AV文件
- 8. Android:存儲選項方法,用於能夠導入文件的用戶
- 9. 關於Android R.java文件
- 10. Ruby on Rails指導關於Activerecord關聯的文檔不正確?
- 11. android - 保存文件到內部存儲
- 12. 用於在Android中存儲音頻文件的目錄
- 13. 關於hg子存儲庫
- 14. 文件夾中的文件的ArrayList Android內部存儲/存儲/模擬/ 0/
- 15. 用於存儲數據的JSON文件
- 16. 用於HA文件存儲的MongoDB GridFS
- 17. SQLite:用於存儲大文件的BLOB?
- 18. 用於存儲文件的Ubuntu目錄
- 19. Android中的存儲列表文件
- 20. 直接存儲在android中的文件?
- 21. Android/SQLite - 文件的存儲位置
- 22. 關於使用Scoped Model Driven的指導
- 23. 需要關於Helpprovider的指導
- 24. 關於蟒蛇刮包的指導
- 25. 關於java類設計的指導
- 26. 關於複雜XSLT的指導
- 27. 如何瀏覽存儲在Android SD存儲器中的文件?
- 28. Android:將android設備的內部存儲器中的文本文件存儲在外部存儲卡中?
- 29. MySQL的指數大於存儲
- 30. 分配的存儲器,用於指針
作爲一個Android用戶,我建議將文件存儲在用戶的SD卡上(如果有的話)。大多數Android手機的存儲容量相對有限,更讓人遺憾的是,更多的應用沒有充分利用SD卡。 – 2010-10-20 12:53:58
是的。我通常會刪除內部存儲空間很大的應用程序,特別是如果它們的設置遠遠超過原始應用程序的大小。但即使將內容存儲在SD卡上並安裝到SD,內部存儲器的使用情況仍然非常重要。我希望在將來的發行版中會有一個更完善的系統來完全安裝所有東西(包括大部分/ data,* .dex文件等等到SD卡) – Tseng 2010-10-20 13:00:42