Android 获取资源数据/文件



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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值