2012-07-05 35 views
-1

時只播放一次音頻我想單擊選項菜單項時只播放一次音頻。當用戶下次點擊相同的項目時,音頻將會停止,我想,但找不到任何解決方案幫助我解決我的問題。這是我的代碼。當用戶交替點擊該項目時,音頻將播放並交替停止。想要在用戶點擊選項菜單項

public boolean onCreateOptionsMenu(Menu menu) 
{ 
    // TODO Auto-generated method stub 
    MenuInflater menuInflater= getMenuInflater(); 
    menuInflater.inflate(R.menu.menu, menu); 
    return true; 
} 
@Override 
public boolean onOptionsItemSelected(MenuItem item) 
{ 
    if (item.getItemId()== R.id.item1) 
    { 
     Intent intent = new Intent(AthravaShirshaActivity.this, EnglishExpln.class); 
     startActivity(intent); 
    } 
    if(item.getItemId()== R.id.item2) 
    { 
     MediaPlayer mp= MediaPlayer.create(AthravaShirshaActivity.this, R.raw.mantra); 
     mp.start(); 
     mp.setLooping(false); 
     mp.setOnCompletionListener(new OnCompletionListener() 
     { 
      @Override 
      public void onCompletion(MediaPlayer mp) 
      { 
       mp.stop(); 
      } 
     }); 
     item.setIcon(android.R.drawable.ic_media_pause); 
    } 
    return true; 
} 

回答

0

可以使mp公衆和MediaPlayer mp= MediaPlayer.create(AthravaShirshaActivity.this, R.raw.mantra);

現在onOptionsItemSelected

if(mp.isPlaying()) 
     { 
      mp.stop(); 
     mp=null; 
      item.setIcon(android.R.drawable.ic_media_play); 
     } 
     else 
     { 
        mp= MediaPlayer.create(AthravaShirshaActivity.this, R.raw.mantra); 
      mp.start(); 
       mp.setLooping(false); 
       mp.setOnCompletionListener(new OnCompletionListener() 
       { 
        @Override 
        public void onCompletion(MediaPlayer mp) 
        { 
         mp.stop(); 
        } 
       }); 
       item.setIcon(android.R.drawable.ic_media_pause); 
     } 
+0

我想ü建議修改你的onCreate()初始化它,但它是工作只有一次意味着音頻將發揮並且在下次沒有發生任何事情時只停止一次。 – Ajinkya 2012-07-05 17:11:00

+0

我編輯我的答案..現在... – 2012-07-05 18:47:55

+0

感謝您的幫助,現在它工作正常。 – Ajinkya 2012-07-06 04:37:38