2014-03-05 77 views
2

如何僅使用1個媒體播放器來停止或暫停MediaPlayer? 例如我有網格視圖。當我點擊按鈕時,我想要的是播放聲音。 但這裏是棘手的部分。當我再次點擊按鈕時,它不會停止它,而是從靜止的聲音開始播放。 我試圖添加使用單個媒體播放器在點擊時停止或暫停MediaPlayer

else{ 
mp.pause 
mp.seekTo(0); 
} 

但它沒有奏效。它給了我錯誤 這裏是我的代碼:

case 24: 
        if(mp!=null) 
        { 
         mp.release(); 
         mp=null; 
        } 

        mp = MediaPlayer.create(Glavni.this, R.raw.s25snd); 
        mp.start(); 
        break; 
+0

你有什麼錯誤?這是不是很清楚你問什麼.. –

+0

我問我怎麼能當我再次點擊相同的按鈕暫停或停止媒體播放器,而不是從開始再次播放它。 和錯誤是'語法錯誤在標記「else」,刪除這個標記' –

+0

mp.pause()和mp.start()應該做你想做的。 – dcow

回答

0

您應該能夠暫停曲目

Mediaplayer.pause(); 
length=Mediaplayer.getCurrentPosition(); 

保存長度比與長度

Mediaplayer.seekTo(length); 
Mediaplayer.start(); 
0

你需要恢復它像這樣:

if (mp == null) { 
    initMediaPlayer(); 
} 
... 
if (mPrepared && mHasStarted && mp.isPlaying()) { 
    mp.pause(); 
} else if (mPrepared) { 
    mHasStarted = true; 
    mp.start(); 
} 

一旦媒體播放器準備就緒,mPrepared就是真實的。如果仔細查看狀態圖和表格,您會注意到在播放開始之前調用pause()是錯誤的。如果這確實是故意的,那麼你也需要mHasStarted標誌。