簡體   English   中英

恢復活動后,Android SoundBoard崩潰

[英]Android SoundBoard Crash when Activity resumed

嗨,我為我的一個名為Aussie Bloke的角色搭建了一個音板-該音板包含30個按鈕和30個媒體播放器。 我最初對所有按鈕都使用一個媒體播放器,但最終在大約20次隨機按下后聲音將停止播放。 因此,我決定為我使用的原始音板模板中的每種聲音使用單獨的mediaplayer對象。 這可以很好地工作,您可以整天按下按鈕,並使聲音正常工作..但是我遇到的問題是,當活動發送到后台並再次返回時,即使按下按鈕幾秒鍾,應用程序也會崩潰。我嘗試創建一個onResume方法來准備所有播放器,但這只是使應用程序從一開始就崩潰了。.對不起,我對編碼和應用程​​序構建非常陌生,因此可能有一個顯而易見的解決方案我被忽略或完全沒有意識到。

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(); 




}

}

您需要在活動中實現onResume()方法,並在那里重新創建mediaplayer對象:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM