有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

暂停后恢复java mediaplayer

用于图像滑动的ViewPager,当单击每个图像时,必须将其不同的mp3从图像流到另一个图像(所有mp3存储在应用程序本身,应用程序包括50页(图像)&;50 mp3)

当我正确单击图像和音频流时,如果我再次单击它停止mp3,然后第三次单击它重新启动mp3

我希望第三次单击可以将mp3从暂停位置恢复

主要活动:

 public class MainActivity extends Activity {
 private ViewPager mViewPager;
 MediaPlayer mp;
    @Override
 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);

     mViewPager= (ViewPager) findViewById(R.id.view_pager);
     ImageAdapter adapter = new ImageAdapter(this);
     mViewPager.setAdapter(adapter);

     final GestureDetector tapGestureDetector = new GestureDetector(this, new TapGestureListener());
     mViewPager.setOnTouchListener(new View.OnTouchListener() {
         public boolean onTouch(View v, MotionEvent event) {
             tapGestureDetector.onTouchEvent(event);
             return false;
         }
     });
 }

 private class TapGestureListener extends GestureDetector.SimpleOnGestureListener {
     @Override
   public boolean onSingleTapConfirmed(MotionEvent e) {

      if (mViewPager.getCurrentItem() == 0) {

            if(mp != null && mp.isPlaying()){
               mp.pause();

              }else{

               mp = MediaPlayer.create(MainActivity.this, R.raw.aa);                  
               mp.start();

                  }
               }    
      else if (mViewPager.getCurrentItem() == 1) {

            if(mp != null && mp.isPlaying()){
               mp.pause();


             }else{

              mp = MediaPlayer.create(MainActivity.this, R.raw.bb);
              mp.start();

                   }
               }
     else if (mViewPager.getCurrentItem() == 2) {

           if(mp != null && mp.isPlaying()){
              mp.pause();

             }else{

             mp = MediaPlayer.create(MainActivity.this, R.raw.cc);
             mp.start();
                }
            }
    else if (mViewPager.getCurrentItem() == 3) {                  

          if(mp != null && mp.isPlaying()){
             mp.pause();

             }else{

             mp = MediaPlayer.create(MainActivity.this, R.raw.dd);
             mp.start();
                }
           }
   else if (mViewPager.getCurrentItem() == 4) {                  

         if(mp != null && mp.isPlaying()){
            mp.pause();

            }else{

           mp = MediaPlayer.create(MainActivity.this, R.raw.ee);
           mp.start();
                }
         } else if (mViewPager.getCurrentItem() == 5) {                  

             if(mp != null && mp.isPlaying()){
                 mp.pause();

              }else{

           mp = MediaPlayer.create(MainActivity.this, R.raw.ff);
           mp.start();
                }
         }
  else if (mViewPager.getCurrentItem() == 6) {

             if(mp != null && mp.isPlaying()){
                 mp.pause();

              }else{

           mp = MediaPlayer.create(MainActivity.this, R.raw.gg);
           mp.start();
                }           
         }

         return super.onSingleTapConfirmed(e);
         }
     } 
 }

如果您有任何帮助,我们将不胜感激


共 (1) 个答案

  1. # 1 楼答案

    我可以正确管理三次单击同一图像,如下所示:

    第一次单击==)播放MP3

    1秒单击==)暂停mp3

    第三次单击==)从暂停的位置重新播放mp3

     if (mViewPager.getCurrentItem() == 0) {
              if(mp != null && mp.isPlaying()){
                  mp.pause();
               length = mp.getCurrentPosition();
    
                 }else{
    
                 mp = MediaPlayer.create(MainActivity.this, R.raw.aa);
                 mp.seekTo(length);
    
                 mp.start();
                 }             
    
              }