初学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下的文件


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值