【问题标题】:Resume mediaplayer after paused暂停后恢复媒体播放器
【发布时间】:2017-07-02 07:09:30
【问题描述】:

使用 ViewPager 进行图片滑动,点击每张图片时必须流式传输 mp3,其不同的 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);
         }
     } 
 }

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

【问题讨论】:

    标签: java android onclick android-viewpager android-mediaplayer


    【解决方案1】:

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

    1-第一次点击 ==) 播放 MP3。

    1 秒点击 ==) 暂停 mp3

    3-三次点击 ==) 从暂停的地方重新开始播放 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();
                 }             
    
              }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 2015-02-12
      • 1970-01-01
      • 2014-01-27
      • 1970-01-01
      相关资源
      最近更新 更多