初学Android,使用原始资源(二十三)

原始资源就是Android没有为之提供专门支持的资源文件,可以放在如下两个位置

/res/raw Android SDK会在R清单类中为该目录下的资源生成一个索引项

/res/assets 需要通过AssetManager来管理该目录下的原始资源

下面写个Demo,往两个目录下各放一个mp3文件,一个叫one,一个叫two(都是黄小琥的音乐,可惜文件名不能是中文)

主界面main.xml代码如下

package WangLi.Resouce.RawResTest;

import java.io.IOException;

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.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class RawResTest extends Activity {
    /** Called when the activity is first created. */
	MediaPlayer mediaPlayer1 = null;
	MediaPlayer mediaPlayer2 = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //直接根据声音文件的ID来创建MediaPlayer
        mediaPlayer1 = MediaPlayer.create(this,R.raw.two);
        //获取该应用的AssetManager
        AssetManager am = getAssets();
        try
        {
        	//获取指定文件对应的AssetFileDescriptor
        	AssetFileDescriptor afd = am.openFd("one.mp3");
        	mediaPlayer2 = new MediaPlayer();
        	//使用MediaPlayer加载指定的声音文件
        	mediaPlayer2.setDataSource(afd.getFileDescriptor());
        	mediaPlayer2.prepare();
        }
        catch(IOException e)
        {
        	e.printStackTrace();
        }
        //获取第一个按钮,并为它绑定事件监听器
        Button playRaw = (Button)findViewById(R.id.button1);
        playRaw.setOnClickListener(new OnClickListener(){
        	public void onClick(View arg0)
        	{
        		//播放声音
        		mediaPlayer1.start();
        	}
        });
        //获取第二个按钮,并为它绑定事件监听器
        Button playAsset = (Button)findViewById(R.id.button2);
        playAsset.setOnClickListener(new OnClickListener(){
        	public void onClick(View arg0)
        	{
        		mediaPlayer2.start();
        	}
        });
    }
}

界面如下图,两个按钮,一个访问Asset下的文件,一个访问raw下的文件

猜你喜欢

转载自chenqiang5206.iteye.com/blog/1628919
今日推荐