当前位置: 代码迷 >> Android >> android MMI(多媒体)接口-音乐播放器
  详细解决方案

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

热度:52   发布时间:2016-05-01 15:43:30.0
android MMI(多媒体)接口--音乐播放器

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

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

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

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

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

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

?
[email protected]
?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 {

[email protected]
??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"/>

  相关解决方案