2013-07-05 20 views
0

我正在實施用於創建媒體播放器的Android應用程序。我已經正確運行該應用程序以便按鈕單擊播放音樂。當我點擊button_Start時,音樂開始播放並點擊相同的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()'嗎?此外,你提供的代碼是相當成問題的。使用「MediaPlayer」搜索互聯網上的任何教程,例如(http://www.androidhive.info/2012/03/android-building-audio-player-tutorial/)。 – Angelo

+0

是的,我已經使用完成的方法,但現在我已經刪除和演示運行正常。謝謝回答。 – tazeen

相關問題