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

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();
}});
}
}

 

 

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *