Android Studio 引用 assets 文件夾中的內容

  看教程,在Eclipse+ADT環境下開發Android應用多數都把音視頻之類的文件放在res/raw目錄下,但是在AS環境下沒法這麼幹,後來發現AS開發中多把這類文件放在與 res 目錄同級的 assets 目錄下,因爲系統在編譯的時候不會編譯 assets 下的資源文件,這樣的話就沒法用R.xxx.id來索引文件了。Android系統提供了一個AssetManager工具類,可以通過getAssets()方法獲取AssetManager對象,像我這樣的初學者可以用下面最基本的用法。
  假如assets文件夾下有sample.mp3文件需要使用,可以用下面的方法引用:

AssetFileDescriptor afd = getAssets().openFd("sample.mp3");

  一些方法可以直接使用 AssetFileDescriptor 類型,比如:

SoundPool.load(AssetFileDescriptor afd, int priority)
MediaPlayer.setDataSource (AssetFileDescriptor afd)   //Added in API level 24

  如果有些時候沒法使用這種類型的話,可以轉換爲更常用的FileDescriptor類型:

FileDescriptor fd = getAssets().openFd("sample.mp3").getFileDescriptor();

  像下面的這種情況就可以使用這種類型了:

MediaPlayer.setDataSource (FileDescriptor fd)

  更詳細用法直接看Android API AssetManager 吧。

發佈了39 篇原創文章 · 獲贊 70 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章