从res/raw或assets文件夹中获取资源文件:
*res/raw和assets的相同点:
1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。
*res/raw和assets的不同点:
1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。
2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹
1、将视频放置于raw文件夹下的情况:
String uri ="android.resource://" + getPackageName() + "/" +R.raw.changshavideo; mediaPlayer.setDataSource(this,Uri.parse(uri));
String uri ="android.resource://" + getPackageName() + "/" +R.raw.xuanchuan;
videoView.setVideoURI(Uri.parse(uri));
2、raw文件夹下放置文本信息:
InputStream in=getResources().openRawResource(R.raw.test);
3、assets文件夹下放置文本信息:
InputStreaminputStream = this.getAssets().open(mCityFolder+"/config.xml");
4、res/raw文件夹下放置音频文件
MediaPlayer mediaPlayer =MediaPlayer.create(MediaPlayerDemoActivity.this, R.raw.a1);
5、assets文件夹放置音频文件:
播放应用的原始资源文件(assets)1) 通过Context.getAssets()方法获得AssetManager对象 2) 通过AssetManager对象的openFd(String name)方法打开指定的原生资源文件夹,返回一个AssetFileDescriptor对象 3) 通过AssetFileDescriptor的getFileDescriptor()得到一个FileDescriptor对象 4) 通过public void setDataSource (FileDescriptor fd, long offset, long length)来创建MediaPlayer对象 5) 调用MediaPlayer.prepare()方法准备音频 6) 调用MediaPlayer的start()、pause()、stop()等方法控制
AssetFileDescriptor fileDescriptor = assetManager.openFd("a2.mp3"); mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(fileDescriptor.getFileDescriptor(),
fileDescriptor.getStartOffset(),
fileDescriptor.getLength());
mediaPlayer.prepare(); mediaPlayer.start(); |
6、播放外部存储上的音频资源文件(sdcard)
1)创建MediaPlayer对象,通过MediaPlayer对象的setDataSource(Stringpath)方法装载预定的音频文件
2)调用MediaPlayer对象的prepare()方法准备音频
3)调用MediaPlayer的start()、pause()、stop()等方法控制
mediaPlayer = newMediaPlayer();
mediaPlayer.setDataSource("/mnt/sdcard/a3.mp3");
mediaPlayer.prepare();
mediaPlayer.start();
7、播放网络上的音频文件
1)根据网络上的地址创建Uri对象
2)通过public void setDataSource (Context context, Uri uri)设置音频来源装载音频文件
3)调用MediaPlayer对象的prepare()方法准备音频
4)调用MediaPlayer的start()、pause()、stop()等方法控制
mediaPlayer = new MediaPlayer();
// 通过Uri解析一个网络地址
Uri uri = Uri.parse("http://zhangmenshiting2.baidu.com/data2/music/9138619/9138619.mp3?xcode=dd0d0d0df7218eb9a79c7fd72cefb648&mid=0.18926789458694");
mediaPlayer.setDataSource(MediaPlayerDemoActivity.this, uri);
mediaPlayer.prepare();
mediaPlayer.start();