本文共 725 字,大约阅读时间需要 2 分钟。
看教程,在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)
更详细用法直接看 吧。
转载地址:http://famci.baihongyu.com/