2013-09-29 63 views
0

我是編程的這個世界的新手,我想在一次的時間重現一個聲音,是一個應用程序與動物長的聲音。mediaplayer一個聲音在時間

當我按下某個按鈕時會發出一些關於某些動物的聲音(gato會發出一聲貓的聲音) 我無法在時間播放聲音,我也嘗試使用soundpool,結果相同,顯然問題在於我的低級別編程xD,有人可以幫助我嗎?

public class MainActivity extends Activity { 
MediaPlayer mp; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 

public void presionGato(View v) { 
    mp.stop(); 
    mp.create(this, R.raw.gato); 
    mp.start(); 
} 
public void presionLeon(View v) { 
    mp.stop(); 
    mp.create(this, R.raw.leon); 
    mp.start(); 
    } 
public void presionPerro(View v) { 
    mp.stop(); 
    mp = mp.create (this, R.raw.perro); 
    mp.start(); 
} 
public void presionTigre(View v) { 
    mp = mp.create (this, R.raw.tigre); 
    mp.start(); 
} 
public void presionRata(View v) { 
    mp = mp.create (this, R.raw.rata); 
    mp.start(); 

} 
public void presionSapo(View v) { 
    mp = mp.create (this, R.raw.sapo); 
    mp.start(); 
} 
public void presionRana(View v) { 
    mp = mp.create (this, R.raw.rana); 
    mp.start(); 
} 

} 
+0

因此,當你按gato然後按leon,gato和leon同時播放? – Howli

+0

是的,現在,使用該代碼,沒有任何事情發生,應用程序衝突:),但是當我按rata和sapo時,兩個聲音都在同一時間播放。 – PabloNocera

回答

0

我向你建議,學習編程和搜索它。你沒有聽任何UI,你怎麼知道哪個按鈕被點擊?

首先,在onCreate上初始化UI元素和媒體播放器;

Button gatoButton = (Button) findViewById(R.id.gato); 
Button leonButton = (Button) findViewById(R.id.leon); 
mp = new MediaPlayer(); 

然後爲每個按鈕設置onClickListener。

gatoButton.setOnClickListener(new OnClickListener(){ 

      @Override 
      public void onClick(View v) { 
       presionGato(); 
      }}); 

leonButton.setOnClickListener(new OnClickListener(){ 

      @Override 
      public void onClick(View v) { 
       presionLeon(); 
      }}); 
+0

謝謝!有什麼方法可以在打開應用程序時啓動聲音? – PabloNocera

+0

是的,你可以在onCreate中調用播放聲音的功能(你想要什麼)。但是你應該決定什麼時候聲音停止播放。 –

0

您可以使用

if(mp.isPlaying()){ mp.stop(); mp.release(); }

它,如果它是打,那麼你可以重新開始新的音樂將停止音樂。它阻止了在同一時間播放音樂。

相關問題