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(); }}); } }
|
沒有留言:
張貼留言