2012年4月10日 星期二

[TQC+ Android] 3-10 程式背景音樂 Use MediaPlayer






設計程式背景音樂 , 該音樂可在應用程式執行階段重複播放 , 當手機按下退出鍵或是程式失去焦點時 , 停止播放背景音樂 , 這題的內容在 [TQC+ Android] 3-3 MP3 播放器 Use MediaPlayer 都差不多講完了 , 沒甚麼特別的技巧 , 考試跳出這題的話算你賺到。




package COM.TQC.GDD03;

import android.app.Activity;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;


public class GDD03 extends Activity
{
  /** Called when the activity is first created. */
  
  MediaPlayer mPlayer;
  
 
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.main);    
     
     try
     {
      mPlayer = MediaPlayer.create(this, R.raw.light);
      mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
      
      mPlayer.setLooping(true);
      //重複播放
      
      //mPlayer.prepare();
      //特別使用註解的方式, 是為了提醒大家, 由於我們先前使用create method建立MediaPlayer
       //create method會自動的call prepare(), 所以我們再call prepare() method會發生 prepareAsync called in state 8的錯誤
         
  }catch (IllegalStateException e)
  {
  // TODO Auto-generated catch block
  e.printStackTrace();
  } 
  }
  
  @Override
  protected void onResume()
  {
 // TODO Auto-generated method stub   
   
   super.onResume();
   mPlayer.start();
  }

  @Override
  protected void onPause()
  {
 // TODO Auto-generated method stub   
   
   super.onPause();
   mPlayer.pause();
  }

  @Override
  protected void onDestroy()
  {
   // TODO Auto-generated method stub   
   super.onDestroy();   
   mPlayer.release();
  }  
}


這題連個Layout都不用設計 , AndroidManifest.xml 也不用特別額外宣告 , 所以都不附上 , 記得先把音樂檔放到 res/raw 資料夾底下就好。




P.S. 題目中所要求的Variable和Method皆會保留 , 也會根據題目所要求的流程去實作 , 縱使題目要求繞遠路....





沒有留言:

張貼留言

Google Analytics