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

( 主要是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"/>

更多相关文章

  1. android虚席总结(16.08.26)Activity的生命周期
  2. 基站定位
  3. Android之向中国天气网发送GET请求获取JSON数据实例
  4. Android(安卓)SQLite学习指南
  5. Android(安卓)包管理流程之包的解析
  6. android:json解析库的选择
  7. Android(安卓)WebView加载服务端JS进行交互
  8. android 反射静态方法传值
  9. android servicemanager与binder源码分析三------如何进入内核通

随机推荐

  1. LFS系列镜像在阿里云镜像站首发上线
  2. Vue中的计算属性与监听属性
  3. vue事件绑定、列表渲染、计算属性与侦听
  4. 提高EDA(探索性数据分析)效率的 3 个简单工
  5. Python 中的 requirements.txt 与 setup.
  6. Python图片批量自动抠图去背景
  7. Python 随机(random)模块的不可预测之美
  8. 如何构建可重复读取inputStream的request
  9. Python中的if...else语法和执行流程
  10. Java对象级别与类级别的同步锁synchroniz