2014-05-12 117 views
0

我在GridView中使用MediaPlayer,帶有案例的onItemClickListener。 我對所有案例/文件只使用MediaPlayer的1個實例。但是對於我的代碼,會發生這種情況:我在第一個按鈕上啓動mp。我想玩第二個按鈕。發生什麼事,當我點擊第二個按鈕MP停止,然後我必須再次點擊才能播放它。 有什麼辦法可以避免這種情況?MediaPlayer點擊其他按鈕時需要點擊兩次才能播放

這裏是我的代碼:

if (mPlay.isPlaying()) { 
         mPlay.reset(); 
        } else { 

         mPlay = MediaPlayer 
           .create(ActivityM.this, R.raw.sound1); 

         mPlay.start(); 
        } 

代碼是相同的所有情況下,唯一的區別是文件。 我也試過mPlay.stop(); mPlay.Pause(); mPlay.seekTo(0);等,但同樣的事情發生。

+0

你有多少個聲音文件? –

+0

我有28個聲音 – user3094736

+0

只有一種方法是使用'Switch Case'來播放聲音文件 –

回答

2

onItemClickListener onItemClick(.....)活動中利用Switch Case

grid.setOnItemClickListener(new OnItemClickListener() { 

@Override 
public void onItemClick(AdapterView<?> arg0, View arg1, int position, 
       long arg3) { 
switch(position){ 

    case 0: 
    mPlay = MediaPlayer.create(ActivityM.this, R.raw.sound1); 
    break; 
    case 1: 
    mPlay = MediaPlayer.create(ActivityM.this, R.raw.sound2); 
    break; 
    case 2: 
    mPlay = MediaPlayer.create(ActivityM.this, R.raw.sound3); 
    break; 
    .... so on 
    default: 
break; 
} 
    } 
}); 

希望這會幫助你。

相關問題