2014-03-19 87 views
0

我在應用程序中添加了兩個按鈕,一個用於播放,一個用於播放。只要我啓動應用程序,歌曲就會自動開始播放。當我按下停止它停止,但是當我按下播放犯規再次如何啓動停止的媒體播放器

啓動時,它要停止我用mediaplayer.stop()這是工作的罰款

要開始我用

mediaplayer.start() 

這是不工作

根據流程圖其給予我們需要使用

prepare() 

然後

OnPreparedListener.onPrepared() 

然後

start() 

我不知道如何使用這些功能。請幫助我

+0

請發表您的代碼 – Akshay

+0

試試下面我的解決方案,讓我知道無論是工作或沒有? – InnocentKiller

回答

2

要再次啓動媒體播放器,請使用以下代碼。

if (mediaplayer != null) { 
     mediaplayer.start(); 
     } 

還有一件事,而不是使用

mediaplayer.stop() 

使用

mediaplayer.pause(); 

,因此將暫停當前歌曲,而不是停止。

只要檢查條件是否爲空。

0
MediaPlayer mp; 


@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.singleitemview); 
     btnsound=(Button)findViewById(R.id.play_sound); 
     btnstopsound=(Button)findViewById(R.id.stop_sound); 
     mp=new MediaPlayer(); 

     btnsound.setOnClickListener(new View.OnClickListener() { 

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


       try { 
        mp.setDataSource(Sound); 
       } catch (IllegalArgumentException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } catch (SecurityException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } catch (IllegalStateException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
       try { 
        mp.prepare(); 
       } catch (IllegalStateException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 

        mp.start(); 
        mp.setLooping(true); 


       } 



     }); 

     btnstopsound.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       mp.setLooping(false); 
       mp.stop(); 
      } 
     }); 




    } 
3

不要叫stop()以停止媒體播放器使用reset()代替。我沒有很好的理由。但是,它肯定會有效。

// for stopping it call below statement 
    if(mediaPlayer.isPlaying()) 
    mediaPlayer.reset(); 

    //for playing it again 
    mediaPlayer.prepare(); 
    mediaPlayer.start(); 
1

嘗試下面的播放代碼Button

mp.reset(); 
mp.setDataSource(song path); 
mp.prepare(); 
mp.start(); 

mp.setDataSource(song path); not necessary if you playing same sound again