`

android MMI(多媒体)接口--音乐播放器

阅读更多

android MMI(多媒体)接口--音乐播放器

(主要是Activity类加上绘图代码  button和textview等省略

public class mainActivity extends Activity {
 // 要播放音乐需要建立一个媒体播放的对象
 private MediaPlayer mediaPlayer;
 private EditText textFilename;
 private Button buttonPause;

 
 //电话接听完以后又开始播放了 所以要重写onRersume方法
 

//这里面重写生命周期的三个方法
 @Override
 protected void onPause() {
  if(mediaPlayer.isPlaying()){
   mediaPlayer.stop();
   buttonPause.setText(R.string.resume);
  }
  super.onPause();
 }

 @Override
 protected void onResume() {
  if(!mediaPlayer.isLooping()){
   mediaPlayer.start();
   buttonPause.setText(R.string.pause);
  }
  super.onResume();
 }
 
//在activtiy关闭的时候进行资源释放
 @Override
 protected void onDestroy() {
  if(mediaPlayer.isPlaying()){
   mediaPlayer.stop();
  }
  mediaPlayer.release();
  super.onDestroy();
 }

 
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  // 注意 多个按钮的情况下采用公共的对象来处理电击事件
  Button buttonPlay = (Button) findViewById(R.id.play);
  Button buttonPause = (Button) findViewById(R.id.pause);
  Button buttonStrop = (Button) findViewById(R.id.stop);
  buttonPause.setOnClickListener(new onClick());
  buttonPlay.setOnClickListener(new onClick());
  buttonStrop.setOnClickListener(new onClick());
  // 得到文本(MP3)的来源
  textFilename = (EditText) findViewById(R.id.filename);

  // 完成对media对象的初始化
  mediaPlayer = new MediaPlayer();
 }

 // 这个地方需要注意了 onClick实现View.OnClickListener
 private class onClick implements View.OnClickListener {

  @Override
  public void onClick(View v) {

   try {
    switch (v.getId()) {

    case R.id.play: // 来自播放按钮
     // 重设里面的参数让它还原
     mediaPlayer.reset();
     // 设置数据来源
     mediaPlayer.setDataSource("/sdcard/" + textFilename);

     //需要先缓冲一下
     mediaPlayer.prepare();
     mediaPlayer.start();

     break;
    case R.id.pause: // /来自暂停按钮

     if(mediaPlayer.isPlaying()){
      mediaPlayer.pause();
      buttonPause.setText(R.string.resume);
     }else{
      mediaPlayer.start();
      buttonPause.setText(R.string.pause);
     }
     break;
    case R.id.stop: // 来自停止按钮
                   if(mediaPlayer.isPlaying()){
                    mediaPlayer.stop();
                 
                   }
     break;
    }

   } catch (Exception e) {
    e.printStackTrace();
   }

  }

 }
}

 

 

 

总结 需要注意的地方

用try{

      switch(){

Case:

//省略

Break;

}

}catch(Exception e){

e.printStackTrace():

}

 

重点注意一点 按钮上的文字是可以变化的

配置中 android:text @String/button;

android:id @id+/button;

//改变显示的字体代码

pauseButton.setText(R.id.button);

      

 

如果这个播放器在播放的时候来了一个电话 那么需要提供生命周期方法

Onpause()来实现的

 

 

因为这里要方法sd卡 所以把sd卡的访问权限加进去

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics