android之使用原始资源

原创 2013年12月04日 10:45:29

android中没有提供专门支持的文件 叫原始资源文件。android原始资源一般放在/res/raw目录和/assets/目录下;在assets目录下的文件通过AssetMananger来管理,它提供了几个常用的方法来访问Assets资源

InputStream open(String fileName):根据文件名来获取原始资源对应的输入流;

AssetFileDescriptor   openFd(String fileName):根据文件名来获取原始资源对应的AssetFileDescriptor  资源描述,应用程序可以通过它来获取原始资源

package com.android.xiong.rawrestest;

import android.app.Activity;
import android.content.res.AssetFileDescriptor;
import android.content.res.AssetManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

	private Button bt1, bt2;
	MediaPlayer mediaPlayer1 = null;
	MediaPlayer mediaPlayer2 = null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		bt1 = (Button) findViewById(R.id.bt1);
		bt2 = (Button) findViewById(R.id.bt2);
		// 直接根据声音文件的ID来创建MediaPlayer
		mediaPlayer1 = MediaPlayer.create(this, R.raw.bomb);
		// 获取该应用的AssetManager
		AssetManager am = this.getAssets();
		try {
			// 获取指定文件对应的AssetFileDescriptor
			AssetFileDescriptor afd = am.openFd("shot.mp3");
			mediaPlayer2 = new MediaPlayer();
			// 使用MediaPlayer加载指定的声音文件
			mediaPlayer2.setDataSource(afd.getFileDescriptor());
			mediaPlayer2.prepare();
		} catch (Exception e) {
			e.printStackTrace();
		}
		bt1.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// 播放声音
				mediaPlayer1.start();
			}
		});
		bt2.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// 播放声音
				mediaPlayer2.start();
				

			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
    <Button 
        android:id="@+id/bt1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="播放1"/>
    <Button 
        android:id="@+id/bt2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/bt1"
        android:text="播放2"/>


</RelativeLayout>


版权声明:本文为博主原创文章,未经博主允许不得转载。

使用AssetFileDescriptor 来读取(android)app的raw文件夹下的数据

//mp是MediaPlayer实例对象,fd是读取raw文件夹下的文件信息类try { AssetFileDescriptor fd = getResources().openRawResouce...
  • yangqinjiang
  • yangqinjiang
  • 2013年04月23日 19:47
  • 10393

AssetFileDescriptor des = getAssets().openFd("GPSResp.dat");报错

以下代码: public void readAsset(View view){ String result=""; try{ AssetFileDescrip...
  • dinglin_87
  • dinglin_87
  • 2013年08月01日 21:18
  • 8199

FileDescriptor详解

FileDescriptor 介绍 FileDescriptor 是“文件描述符”。 FileDescriptor 可以被用来表示开放文件、开放套接字等。 以FileDescriptor表示...
  • morningsun1990
  • morningsun1990
  • 2014年02月21日 20:53
  • 6969

Android的文件操作

Android的文件存储 一、Android的文件操作简介 要理解Android的文件存储,首先要明白Android是如何用什么方式获取和存入数据的。Android的文件操作都是通过流的方式进行的,即...
  • stop_pig
  • stop_pig
  • 2014年09月11日 15:06
  • 2849

android 输入输出流小结(1)

stream:任何有能力产出数据的数据源,或是任何有能力接收数据的接收源 ...
  • lanhuzi9999
  • lanhuzi9999
  • 2014年06月17日 10:54
  • 13780

[深入理解Android卷二 全文-第七章]深入理解ContentProvider

由于《深入理解Android 卷一》和《深入理解Android卷二》不再出版,而知识的传播不应该因为纸质媒介的问题而中断,所以我将在CSDN博客中全文转发这两本书的全部内容 第7章  深入理解Cont...
  • Innost
  • Innost
  • 2015年08月03日 13:10
  • 12616

Java io FileDescriptor介绍及使用

FileDescriptor 介绍 FileDescriptor 是“文件描述符”。 FileDescriptor 可以被用来表示开放文件、开放套接字等。 以FileDescriptor表示文件来说:...
  • Zhangxichao100
  • Zhangxichao100
  • 2016年06月08日 23:43
  • 4072

FileDescriptor(文件描述符 )与Linux文件系统

最近看《Linux System Programming》看到关于File Descriptor的描述,看java文档感觉似是而非不太清楚,从linux方面就很容易了。 FileDescripto...
  • zhjali123
  • zhjali123
  • 2017年05月22日 14:45
  • 540

Android从资源文件中读取文件全

1. 相关文件夹介绍      在Android项目文件夹里面,主要的资源文件是放在res文件夹里面的。assets文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像xml,java文...
  • heng615975867
  • heng615975867
  • 2013年11月13日 12:15
  • 10056

Android获取音乐的内置图片

如果音乐文件带有内置图片的话,可以用如下的方式获取该图片。 public class ArtworkUtils { private static final Uri sArtworkU...
  • tao_zi7890
  • tao_zi7890
  • 2013年04月25日 20:15
  • 7116
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android之使用原始资源
举报原因:
原因补充:

(最多只允许输入30个字)