2014-10-29 189 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