2013-02-10 116 views
0

嗨,我爲我的一個角色Aussie Bloke製作了一個音板 - 音板包含30個按鈕和30個媒體播放器。我最初爲所有按鈕使用了一個媒體播放器,但最終在大約20次隨機按下後,聲音停止播放。所以我決定在我使用的原始音板模板中使用的每個聲音使用獨立的mediaplayer對象。這工作得很好,你可以按下按鈕整天,並讓聲音正常工作..但我遇到的問題是,當活動發送到後臺,並再次帶回,即使幾秒鐘後,按下按鈕時,應用程序崩潰..我試圖創建一個onResume方法來準備所有的玩家,但是這只是使應用從一開始就崩潰了。對於編碼和應用構建,我很新,所以可能有一個我忽略或完全沒有意識到的明顯解決方案。活動恢復後Android SoundBoard崩潰

package com.zammacat.aussiebloke1; 

import java.io.IOException; 

import android.app.Activity; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 

public class AUSSIEBLOKE1 extends Activity { 

private static final String BASE64_PUBLIC_KEY = "key here"; 

    MediaPlayer beer1; 
    MediaPlayer beer2; 
    MediaPlayer beer3; 
    MediaPlayer beauty; 
    MediaPlayer boner; 
    MediaPlayer death; 
    MediaPlayer dingo; 
    MediaPlayer dogupya; 
    MediaPlayer donotpress; 
    MediaPlayer enough; 
    MediaPlayer heaven; 
    MediaPlayer help; 
    MediaPlayer hungry; 
    MediaPlayer kebab; 
    MediaPlayer kids; 
    MediaPlayer knees; 
    MediaPlayer later; 
    MediaPlayer meatpie; 
    MediaPlayer medal; 
    MediaPlayer oath; 
    MediaPlayer poem; 
    MediaPlayer politics; 
    MediaPlayer pub; 
    MediaPlayer sex; 
    MediaPlayer sport; 
    MediaPlayer strewth; 
    MediaPlayer tango; 
    MediaPlayer v8; 
    MediaPlayer what; 
    MediaPlayer yoursister; 

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




    beer1 = MediaPlayer.create(this, R.raw.beer1); 
    beer2 = MediaPlayer.create(this, R.raw.beer2); 
    beer3 = MediaPlayer.create(this, R.raw.beer3); 
    beauty = MediaPlayer.create(this, R.raw.beauty); 
    boner = MediaPlayer.create(this, R.raw.boner); 
    death = MediaPlayer.create(this, R.raw.death); 
    dingo = MediaPlayer.create(this, R.raw.dingo); 
    dogupya = MediaPlayer.create(this, R.raw.dogupya); 
    donotpress = MediaPlayer.create(this, R.raw.donotpress); 
    enough = MediaPlayer.create(this, R.raw.enough); 
    heaven = MediaPlayer.create(this, R.raw.heaven); 
    help = MediaPlayer.create(this, R.raw.help); 
    hungry = MediaPlayer.create(this, R.raw.hungry); 
    kebab = MediaPlayer.create(this, R.raw.kebab); 
    kids = MediaPlayer.create(this, R.raw.kids); 
    knees = MediaPlayer.create(this, R.raw.knees); 
    later = MediaPlayer.create(this, R.raw.later); 
    meatpie = MediaPlayer.create(this, R.raw.meatpie); 
    medal = MediaPlayer.create(this, R.raw.medal); 
    oath = MediaPlayer.create(this, R.raw.oath); 
    poem = MediaPlayer.create(this, R.raw.poem); 
    politics = MediaPlayer.create(this, R.raw.politics); 
    pub = MediaPlayer.create(this, R.raw.pub); 
    sex = MediaPlayer.create(this, R.raw.sex); 
    sport = MediaPlayer.create(this, R.raw.sport); 
    strewth = MediaPlayer.create(this, R.raw.strewth); 
    tango = MediaPlayer.create(this, R.raw.tango); 
    v8 = MediaPlayer.create(this, R.raw.v8); 
    what = MediaPlayer.create(this, R.raw.what); 
    yoursister = MediaPlayer.create(this, R.raw.yoursister); 



    Button b01 = (Button) findViewById(R.id.beer1); 
    b01.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       beer1.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      beer1.start();    
      } 
    }); 

    Button b02 = (Button) findViewById(R.id.beer2); 
    b02.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       beer2.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      beer2.start();    
      } 
    }); 

    Button b03 = (Button) findViewById(R.id.beer3); 
    b03.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       beer3.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      beer3.start();    
      } 
    }); 

    Button b04 = (Button) findViewById(R.id.beauty); 
    b04.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       beauty.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      beauty.start();    
      } 
    }); 

    Button b05 = (Button) findViewById(R.id.boner); 
    b05.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       boner.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      boner.start();    
      } 
    }); 

    Button b06 = (Button) findViewById(R.id.death); 
    b06.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       death.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      death.start();    
      } 
    }); 

    Button b07 = (Button) findViewById(R.id.dingo); 
    b07.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       dingo.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      dingo.start();    
      } 
    }); 

    Button b08 = (Button) findViewById(R.id.dogupya); 
    b08.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       dogupya.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      dogupya.start();     
      } 
    }); 

    Button b09 = (Button) findViewById(R.id.donotpress); 
    b09.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       donotpress.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      donotpress.start();    
      } 
    }); 

    Button b10 = (Button) findViewById(R.id.enough); 
    b10.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       enough.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      enough.start();    
      } 
    }); 

    Button b11 = (Button) findViewById(R.id.heaven); 
    b11.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       heaven.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      heaven.start();    
      } 
    }); 

    Button b12 = (Button) findViewById(R.id.help); 
    b12.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       help.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      help.start();    
      } 
    }); 

    Button b13 = (Button) findViewById(R.id.hungry); 
    b13.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       hungry.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      hungry.start();    
      } 
    }); 

    Button b14 = (Button) findViewById(R.id.kebab); 
    b14.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       kebab.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      kebab.start();    
      } 
    }); 

    Button b15 = (Button) findViewById(R.id.kids); 
    b15.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       kids.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      kids.start();    
      } 
    }); 

    Button b16 = (Button) findViewById(R.id.knees); 
    b16.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       knees.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      knees.start();    
      } 
    }); 

    Button b17 = (Button) findViewById(R.id.later); 
    b17.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       later.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      later.start();    
      } 
    }); 

    Button b18 = (Button) findViewById(R.id.meatpie); 
    b18.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       meatpie.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      meatpie.start();     
      } 
    }); 

    Button b19 = (Button) findViewById(R.id.medal); 
    b19.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       medal.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      medal.start();    
      } 
    }); 

    Button b20 = (Button) findViewById(R.id.oath); 
    b20.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       oath.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      oath.start();    
      } 
    }); 

    Button b21 = (Button) findViewById(R.id.poem); 
    b21.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       poem.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      poem.start();    
      } 
    }); 

    Button b22 = (Button) findViewById(R.id.politics); 
    b22.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       politics.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      politics.start();    
      } 
    }); 

    Button b23 = (Button) findViewById(R.id.pub); 
    b23.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       pub.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      pub.start();     
      } 
    }); 

    Button b24 = (Button) findViewById(R.id.sex); 
    b24.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       sex.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      sex.start();     
      } 
    }); 

    Button b25 = (Button) findViewById(R.id.sport); 
    b25.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       sport.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      sport.start();    
      } 
    }); 

    Button b26 = (Button) findViewById(R.id.strewth); 
    b26.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       strewth.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      strewth.start();     
      } 
    }); 

    Button b27 = (Button) findViewById(R.id.tango); 
    b27.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       tango.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      tango.start();    
      } 
    }); 

    Button b28 = (Button) findViewById(R.id.v8); 
    b28.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       v8.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      v8.start();    
      } 
    }); 

    Button b29 = (Button) findViewById(R.id.what); 
    b29.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       what.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      what.start();    
      } 
    }); 

    Button b30 = (Button) findViewById(R.id.yoursister); 
    b30.setOnClickListener(new OnClickListener(){ 
     public void onClick(View v){ 
      try { 
       yoursister.prepare(); 
      } catch (IllegalStateException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      yoursister.start();    
      } 
    }); 



} 


protected void onStop() { 

    super.onStop(); 
    beer1.release(); 
    beer2.release(); 
    beer3.release(); 
    beauty.release(); 
    boner.release(); 
    death.release(); 
    dingo.release(); 
    dogupya.release(); 
    donotpress.release(); 
    enough.release(); 
    heaven.release(); 
    help.release(); 
    hungry.release(); 
    kebab.release(); 
    kids.release(); 
    knees.release(); 
    later.release(); 
    meatpie.release(); 
    medal.release(); 
    oath.release(); 
    poem.release(); 
    politics.release(); 
    pub.release(); 
    sex.release(); 
    sport.release(); 
    strewth.release(); 
    tango.release(); 
    v8.release(); 
    what.release(); 
    yoursister.release(); 




} 

}

回答

0

您需要實現您的活動onResume()方法和重建有您的媒體播放器對象:

public void onResume() { 
    super.onResume(); 

// ... 

beer1 = MediaPlayer.create(this, R.raw.beer1); 
beer2 = MediaPlayer.create(this, R.raw.beer2); 
beer3 = MediaPlayer.create(this, R.raw.beer3); 

// ... 
} 

你可以閱讀更多關於活動的生命週期在這裏:http://developer.android.com/training/basics/activity-lifecycle/index.html

+0

感謝名單soulreaver ...所以我需要在oncreate和onresume方法中創建mediaplayer ...我還應該在beer1.pause中添加一個onPause方法()等。如果有人專家可以做一個最佳實踐的音板教程或我所困惑的所有不同的方法出現在那裏 – Beefdude 2013-02-10 10:04:36

+0

只是實現了代碼並在我的手機上進行了測試......這將是真棒現在回來..好吧..你值得一選擇soulreaver流行飲料 – Beefdude 2013-02-10 10:11:10

+0

很高興聽到。如果我的回答有幫助,請接受它。 – Kristopher 2013-02-10 10:12:38