2014-10-29 183 views
1

我是编程的绝对新手,最近刚刚开始接触Android编程。添加了4个图像按钮,每个按钮都会播放独特的曲调并显示唯一的消息;但问题是,如果我点击另一个按钮后再按下另一个按钮,以前的音乐会继续播放,而现在的音乐仍然播放,总之音乐会继续播放。如果我一个接一个播放四个按钮,四个不同的乐曲将一起播放。找不到出路。请尽可能以精心的方式提供帮助。另一个问题,我创造的编码太复杂了吗?以前播放音乐不会在按钮按下时停止。

package com.example.imagesonic; 


import android.app.Activity; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ImageButton; 
import android.widget.Toast; 


public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 



     try{ 


     ImageButton ib1 = (ImageButton) findViewById(R.id.imageButton1); 
     final MediaPlayer mp1 = MediaPlayer.create(this, R.raw.muzikone); 

     ib1.setOnClickListener (new View.OnClickListener() { 



      @Override 
      public void onClick(View v) { 

       Toast.makeText(MainActivity.this, "FIRST MUSIC!", Toast.LENGTH_LONG).show(); 
       mp1.start(); 

      }  


     }); 


     ImageButton ib2 = (ImageButton) findViewById(R.id.imageButton2); 
     final MediaPlayer mp2 = MediaPlayer.create(this, R.raw.muziktwo); 

     ib2.setOnClickListener (new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       Toast.makeText(MainActivity.this, "SECOND MUSIC!", Toast.LENGTH_LONG).show(); 
       mp2.start(); 

      }  


     }); 



     ImageButton ib3 = (ImageButton) findViewById(R.id.imageButton3); 
     final MediaPlayer mp3 = MediaPlayer.create(this, R.raw.muzikthree); 

      ib3.setOnClickListener (new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       Toast.makeText(MainActivity.this, "THIRD MUSIC!", Toast.LENGTH_LONG).show(); 

       mp3.start(); 

      }  


     }); 


      ImageButton ib4 = (ImageButton) findViewById(R.id.imageButton4); 
      final MediaPlayer mp4 = MediaPlayer.create(this, R.raw.muzikfour); 

      ib4.setOnClickListener (new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       Toast.makeText(MainActivity.this, "FOURTH MUSIC!", Toast.LENGTH_LONG).show(); 
       ImageButton ib4 = (ImageButton) findViewById(R.id.imageButton1); 
       ib4.setImageResource(R.drawable.naomitan); 
       mp4.start(); 

      }  


     }); 

    }catch(Exception e) { 

    } 
    } 
} 

回答

0

为了让您的应用程序中,一旦一个歌曲播放,其他所有的歌曲将停止播放这样的工作,你必须使用一个服务,并实现了Android Audio manager回调,然后就可以控制你的MediaPlayer实例如果另一个AudioManger实例正在播放音乐,则停止播放音乐。

Here是Google提供的一些很棒的文档,用于说明如何实现此目的。这非常简单。

+0

非常感谢您花费宝贵的时间为像我这样的新手提出宝贵的建议。如果我需要任何建议,我会尽力研究并尽快回复你。希望你能理解。保重。 – 2014-10-30 16:35:29

+0

真棒,让我知道如果你需要任何帮助! – 2014-10-30 16:37:48