2013-07-05 5 views
0

미디어 플레이어 제작을 위해 Android 애플리케이션을 구현 중입니다. 버튼 클릭시 음악을 재생하기 위해 애플리케이션을 올바르게 실행했습니다. button_Start 버튼을 클릭하면 음악이 재생되고 같은 버튼을 클릭합니다 ._ 일시 중지하고 다시 시작/시작합니다. button_Start가 클릭하면 내 button_Second가 비활성화되고 button_Start가 일시 중지를 클릭하면 button_Second가 비활성화됩니다. 하지만 사운드 클립이 내 button_Second 이상이고 button_Start가 비활성화 된 경우를 원합니다. 앱을 실행할 때 오류가 발생합니다 (IllegelStateException). 어떻게 할 수 있을지 모르겠다. 아무도 도와 줄 수 있니? 고맙습니다.Android에서 사운드 클립이 끝났을 때 다른 버튼을 비활성화하는 방법은 무엇입니까?

여기 내 코드입니다. 이것은 y Audio_Activity 클래스입니다.

public class Audio_Activity extends Activity 
{ 
    private MediaPlayer mp; 
    Button btnStartStop ; 
    Button btnChapter ; 


    ImageView imgVw; 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.audio); 
     init(); 


     mp=MediaPlayer.create(this,R.raw.ennamo_yadho); 
     Log.e("Song is playing","in Mediya Player "); 

     System.out.println("B4 button Click!!!!"); 


     System.out.println("After Button click !! "); 
     if(mp!=null) 
     { 
      mp.stop(); 
      mp.release(); 
      System.out.println("Media Player Is Stop and release"); 

      btnChapter.setEnabled(true); 
      System.out.println("btnChapter is enabled when media player is 
         release !!!"); 

     } 

     btnStartStop.setOnClickListener(new OnClickListener() 
     { 

      @Override 
      public void onClick(View arg0) 
      { 
       // TODO Auto-generated method stub 

       if(mp.isPlaying()) 
       { 
        if(mp!=null) 
        { 
          mp.pause(); 
         imgVw.setImageResource(R.raw.images1); 
         btnChapter.setEnabled(true); 

        } 
       } 

       else 
       { 
        // Resume song 
        if(mp!=null) 
        { 
          mp.start(); 
         imgVw.setImageResource(R.raw.teddy_two); 
         btnChapter.setEnabled(false); 


        } 


      }} 
     }); 



    } 


    public void init() 
    { 
     imgVw=(ImageView)findViewById(R.id.display_Images); 


     btnStartStop=(Button) findViewById(R.id.btnPause_Resume); 
     btnChapter=(Button) findViewById(R.id.btnChapter); 


    } 

} 

답변

1

다음 사운드 클립이 시작되고 다시 버튼을 가능하게하는 핸들러를 등록하는 MediaPlayer 클래스 (link)의 setOnCompletionListener 방법을 사용할 때이 버튼을 사용하지 않도록 설정할 수 있습니다. 희망은 도움이 :

+0

버튼은 사용할 수 있지만 내 활동이 끝났습니다. 내 활동을 마무리하고 싶지가 않습니다. – tazeen

+0

@tazeen 코드'finih()'에서 어딘가에 전화하고 계십니까? 또한 제공 한 코드는 매우 문제가 있습니다. 인터넷 (http://www.androidhive.info/2012/03/android-building-audio-player-tutorial/)과 같은 'MediaPlayer'를 사용하는 자습서를 인터넷에서 검색하십시오. – Angelo

+0

예 마무리 방법을 사용했으나 이제는 제거하고 데모가 제대로 실행됩니다. 답변 감사합니다. – tazeen

관련 문제