--------------------------------main.java-----------------------------------
package com.example.sd;
import java.io.IOException;
import android.content.res.AssetFileDescriptor;
import android.content.res.AssetManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends ActionBarActivity {
MediaPlayer mediaPlayer1 = null;
MediaPlayer mediaPlayer2 = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 直接根据声音文件的ID来创建MediaPlayer。
//bomb.mp3文件放在/res/raw/目录下,(目录raw是手动建立的)
mediaPlayer1 = MediaPlayer.create(this, R.raw.bomb);
// 获取该应用的AssetManager
AssetManager am = getAssets();
try
{
//shot.mp3文件放在/res/assets/目录下
// 获取指定文件对应的AssetFileDescriptor。
AssetFileDescriptor afd = am.openFd("shot.mp3");
mediaPlayer2 = new MediaPlayer();
// 使用MediaPlayer加载指定的声音文件。
mediaPlayer2.setDataSource(afd.getFileDescriptor());
mediaPlayer2.prepare();
}
catch (IOException e)
{
e.printStackTrace();
}
// 获取第一个按钮,并为它绑定事件监听器
Button playRaw = (Button) findViewById(R.id.playRaw);
playRaw.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
// 播放声音
mediaPlayer1.start();
}
});
// 获取第二个按钮,并为它绑定事件监听器
Button playAsset = (Button) findViewById(R.id.playAsset);
playAsset.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
// 播放声音
mediaPlayer2.start();
}
});
}
}
。。。。。。。。。。。。。。。。。。。。。。main.xml。。。。。。。。。。。。。。。。。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/playRaw"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="play_raw"
/>
<Button
android:id="@+id/playAsset"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="play_asset"
/>
</LinearLayout>