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>