2014年1月5日 星期日

3D遊戲開發祥解-利用MediaPlayer和AudioManager實現播放記憶卡內生音檔和簡易音量控制

3D遊戲開發祥解-利用MediaPlayer和AudioManager實現播放記憶卡內生音檔和簡易音量控制



 


Sample3_2-Layout(Xml)


-GUI 由1個LinearLayout+5個Button組成









<?xml version="1.0" encoding="UTF-8"?>

-<LinearLayout android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">

<Button android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/ButtonPlay" android:text="播放音樂"> </Button>

<!-- 播放音樂按鈕 -->


<Button android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/ButtonPause" android:text="暫停音樂"> </Button>

<!-- 暫停音樂按鈕 -->


<Button android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/ButtonStop" android:text="停止音樂"> </Button>

<!-- 停止音樂按鈕 -->


<Button android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/ButtonVAdd" android:text="增大音樂"> </Button>

<!-- 增大音樂按鈕 -->


<Button android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/ButtonVReduce" android:text="降低音樂"> </Button>

<!-- 降低音樂按鈕 -->


</LinearLayout>


 


Sample3_2-Code









package wyf.zcl;
import android.app.Activity; //引入套件
import android.media.AudioManager; //引入套件
import android.media.MediaPlayer; //引入套件
import android.os.Bundle; //引入套件
import android.view.View; //引入套件
import android.widget.Button; //引入套件
import android.widget.Toast;
public class MyActivity extends Activity {
/** Called when the activity is first created. */
private Button bPlay; //播放按鈕
private Button bPause; //暫停按鈕
private Button bStop; //停止按鈕
private Button bAdd; //增大音量
private Button bReduce; //降低音量
private boolean pauseFlag=false; //暫停標��,true暫停,false非暫停
MediaPlayer mp; //MediaPlayer引用
AudioManager am; //AudioManager引用
@Override
public void onCreate(Bundle savedInstanceState) { //Activity建立時調用
super.onCreate(savedInstanceState);
setContentView(R.layout.main); //設置Activity的顯示內容
bPlay=(Button)findViewById(R.id.ButtonPlay); //播放按鈕的產生實體
bPause=(Button)findViewById(R.id.ButtonPause); //暫停按鈕的產生實體
bStop=(Button)findViewById(R.id.ButtonStop); //停止按鈕的產生實體
bAdd=(Button)findViewById(R.id.ButtonVAdd); //增大音量按鈕的產生實體
bReduce =(Button)findViewById(R.id.ButtonVReduce);//降低音量按鈕的產生實體
mp=new MediaPlayer();
am=(AudioManager) this.getSystemService(MyActivity.AUDIO_SERVICE);
bPlay.setOnClickListener(new View.OnClickListener() { //播放按鈕的事件
@Override
public void onClick(View v) {
try{
mp.setDataSource("/sdcard/dl.mid"); //載入音訊進入Initialized狀態
}catch(Exception e){e.printStackTrace();}
try{
mp.prepare(); //進入Prepared狀態
}catch(Exception e){e.printStackTrace();}
mp.start(); //播放音樂
Toast.makeText(MyActivity.this, "播放音樂", Toast.LENGTH_SHORT).show();
}});
bPause.setOnClickListener(new View.OnClickListener() { //暫停按的事件
@Override
public void onClick(View v) {
if(mp.isPlaying()){ //如果��在播放狀態
mp.pause(); //調用暫停方法
pauseFlag=true; //設置暫停標��
}else if(pauseFlag){
mp.start(); //播放音樂
pauseFlag=false; //設置暫停標��
Toast.makeText(MyActivity.this, "暫停播放", Toast.LENGTH_SHORT).show();
}}
});
bStop.setOnClickListener(new View.OnClickListener() { //停止按鈕的事件
@Override
public void onClick(View v) {
mp.stop(); //停止播放
mp.reset(); //重置狀態到uninitialized狀態
try{
mp.setDataSource("/sdcard/dl.mid"); //載入音訊進入Initialized狀態
}catch(Exception e){e.printStackTrace();}
try{
mp.prepare(); //進入Prepared狀態
}catch(Exception e){e.printStackTrace();}
Toast.makeText(MyActivity.this, "停止播放", Toast.LENGTH_SHORT).show();
}});
bAdd.setOnClickListener(new View.OnClickListener() { //音量增大按鈕的事件
@Override
public void onClick(View v) {
am.adjustVolume(AudioManager.ADJUST_RAISE, 0); //增大音量
System.out.println("faaa");
Toast.makeText(MyActivity.this, "增大音量", Toast.LENGTH_SHORT).show();
}});
bReduce.setOnClickListener(new View.OnClickListener() { //音量降低按鈕的事件
@Override
public void onClick(View v) {
am.adjustVolume(AudioManager.ADJUST_LOWER, 0); //減小音量
Toast.makeText(MyActivity.this, "減小音量", Toast.LENGTH_SHORT).show();
}});
}
}


 


 


沒有留言:

張貼留言