2010-12-04 2 views
0

私はアンドロイドには新しく、実際にはこれは私の2番目のプログラムです。私は昨夜からプログラミングをしていますが、何時間も解決策を見つけようとしています!私はまだそれを修正することはできません! 私は別のボタンをクリックしたときにオーディオ再生を止められないことが分かっているので、いつもの問題です。mp.release、ストップ、すべてを試みましたが、停止ボタンを押したときや戻ったときにクラッシュする!! 22のボタンがあり、私は21曲(停止のために1つのボタン)を演奏します。 また、私は2回目の再生をクリックするとボタンを作ろうとしたことを忘れていましたが、それはできませんでした。mp.stop()問題

これはあなたが投稿したコードに私のコード

package org.kidsongs; 



import android.app.Activity; 
import android.media.AudioManager; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.View; 
import android.widget.Button; 

public class menu extends Activity { 
    public MediaPlayer mp=null; 
    Button playerButton; 



    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     setVolumeControlStream(AudioManager.STREAM_MUSIC); 





     final Button button = (Button) findViewById(R.id.Button01); 
     button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
        MediaPlayer mp = MediaPlayer.create(getBaseContext(),R.raw.song1);     
        mp.start(); 




      } 



     }); 


     final Button button2 = (Button) findViewById(R.id.Button02); 
     button2.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) {     
        MediaPlayer mp = MediaPlayer.create(getBaseContext(),R.raw.song2);     
        mp.start(); 



      } 



     }); 

     final Button button3 = (Button) findViewById(R.id.Button03); 
     button3.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) {     
        MediaPlayer mp = MediaPlayer.create(getBaseContext(),R.raw.song3);     
        mp.start(); 



      } 



     }); 


     final Button button4 = (Button) findViewById(R.id.Button04); 
     button4.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) {     
        MediaPlayer mp = MediaPlayer.create(getBaseContext(),R.raw.song4);     
        mp.start(); 



      } 



     }); 


     final Button button5 = (Button) findViewById(R.id.Button05); 
     button5.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) {     
        MediaPlayer mp = MediaPlayer.create(getBaseContext(),R.raw.song5);     
        mp.start(); 



      } 



     }); 


     final Button button6 = (Button) findViewById(R.id.Button06); 
     button6.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) {     
        MediaPlayer mp = MediaPlayer.create(getBaseContext(),R.raw.song6);     
        mp.start(); 



      } 



     }); 


     final Button button7 = (Button) findViewById(R.id.Button07); 
     button7.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) {     
        MediaPlayer mp = MediaPlayer.create(getBaseContext(),R.raw.song7);     
        mp.start(); 



      } 



     }); 


     final Button button8 = (Button) findViewById(R.id.Button08); 
     button8.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) {     
        MediaPlayer mp = MediaPlayer.create(getBaseContext(),R.raw.song8);     
        mp.start(); 



      } 



     }); 


     final Button button9 = (Button) findViewById(R.id.Button09); 
     button9.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) {     
        MediaPlayer mp = MediaPlayer.create(getBaseContext(),R.raw.song9);     
        mp.start(); 



      } 



     }); 


     final Button button10 = (Button) findViewById(R.id.Button10); 
     button10.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) {     
        MediaPlayer mp = MediaPlayer.create(getBaseContext(),R.raw.song10);     
        mp.start(); 



      } 



     }); 


     final Button button11 = (Button) findViewById(R.id.Button11); 
     button11.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) {     
        MediaPlayer mp = MediaPlayer.create(getBaseContext(),R.raw.song11);     
        mp.start(); 



      } 



     }); 


     final Button button12 = (Button) findViewById(R.id.Button12); 
     button12.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) {     
        MediaPlayer mp = MediaPlayer.create(getBaseContext(),R.raw.song12);     
        mp.start(); 



      } 



     }); 


     final Button button13 = (Button) findViewById(R.id.Button13); 
     button13.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) {     
        MediaPlayer mp = MediaPlayer.create(getBaseContext(),R.raw.song13);     
        mp.start(); 



      } 



     }); 


     final Button button14 = (Button) findViewById(R.id.Button14); 
     button14.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) {     
        MediaPlayer mp = MediaPlayer.create(getBaseContext(),R.raw.song14);     
        mp.start(); 



      } 



     }); 


     final Button button15 = (Button) findViewById(R.id.Button15); 
     button15.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) {     
        MediaPlayer mp = MediaPlayer.create(getBaseContext(),R.raw.song15);     
        mp.start(); 



      } 



     }); 


     final Button button16 = (Button) findViewById(R.id.Button16); 
     button16.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) {     
        MediaPlayer mp = MediaPlayer.create(getBaseContext(),R.raw.song16);     
        mp.start(); 



      } 



     }); 


     final Button button17 = (Button) findViewById(R.id.Button17); 
     button17.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) {     
        MediaPlayer mp = MediaPlayer.create(getBaseContext(),R.raw.song17);     
        mp.start(); 



      } 



     }); 


     final Button button18 = (Button) findViewById(R.id.Button18); 
     button18.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) {     
        MediaPlayer mp = MediaPlayer.create(getBaseContext(),R.raw.song18);     
        mp.start(); 



      } 



     }); 


     final Button button19 = (Button) findViewById(R.id.Button19); 
     button19.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) {     
        MediaPlayer mp = MediaPlayer.create(getBaseContext(),R.raw.song19);     
        mp.start(); 



      } 



     }); 


     final Button button20 = (Button) findViewById(R.id.Button20); 
     button20.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) {     
        MediaPlayer mp = MediaPlayer.create(getBaseContext(),R.raw.song20);     
        mp.start(); 



      } 



     }); 


     final Button button21 = (Button) findViewById(R.id.Button21); 
     button21.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) {     
        MediaPlayer mp = MediaPlayer.create(getBaseContext(),R.raw.song21);     
        mp.start(); 



      } 



     }); 


     final Button stopbutton = (Button) findViewById(R.id.Button22); 
     stopbutton.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
        mp.stop(); 
        mp.release(); 



      } 



     }); 





    } 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.info, menu); 
     return true; 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     if(mp.isPlaying()){ 
      mp.stop(); 
     } 
    } 

    @Override 
    public void onDestroy(){ 
    super.onDestroy(); 
     mp.release(); 
    } 
} 
+0

あるべきと考えているあなたのスタックトレースを投稿したり、あなたはここで誰からまともな答えを得ることはありません。 –

答えて

2

私は

public void onClick(View v) 
{     
     MediaPlayer mp = MediaPlayer.create(getBaseContext(),R.raw.song21);     
     mp.start(); 
} 

public void onClick(View v) 
{     
     mp = MediaPlayer.create(getBaseContext(),R.raw.song21);     
     mp.start(); 
} 
+0

OMG ITはうまくいくよ!!!!!!! – DarkPain

2

では、各クリックハンドラで地元のMediaPlayerオブジェクトを作成している、間違っています。代わりに、アクティビティのメンバーとして宣言されたオブジェクトを使用し、stopメソッドを呼び出すと、参照が正しく確立されます。

button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
        MediaPlayer mp = MediaPlayer.create(getBaseContext(),R.raw.song1);     
        mp.start(); 
      } 
     }); 

は次のようになります。

button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
        mp = MediaPlayer.create(getBaseContext(),R.raw.song1);     
        mp.start(); 
      } 
     }); 
+0

クラスオブジェクト?how? – DarkPain

+1

アクティビティクラスのMediaPlayerインスタンス。 MediaPlayerオブジェクトをクラスのメンバーとして宣言しました。 public class menuはアクティビティを継承します{ public MediaPlayer mp = null; –