Android 获取资源数据/文件

来源:互联网 发布:美团外卖消费数据分析 编辑:程序博客网 时间:2024/05/17 17:16


res/rawassets文件夹中获取资源文件:

*res/rawassets的相同点:

1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。

 

*res/rawassets的不同点:

1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源IDR.id.filenameassets文件夹下的文件不会被映射到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));

 

2raw文件夹下放置文本信息:

InputStream in=getResources().openRawResource(R.raw.test);

 

3assets文件夹下放置文本信息:

InputStreaminputStream = this.getAssets().open(mCityFolder+"/config.xml");

 

4res/raw文件夹下放置音频文件

 MediaPlayer  mediaPlayer =MediaPlayer.create(MediaPlayerDemoActivity.this, R.raw.a1);

 

5assets文件夹放置音频文件:

播放应用的原始资源文件(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)调用MediaPlayerstart()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)调用MediaPlayerstart()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();

0 0
原创粉丝点击