【发布时间】:2017-06-27 20:42:28
【问题描述】:
使用 ViewPager 进行图像滑动,每个图像 onclick 流特定的 mp3。
以下操作正常:
1-第一次点击 ==) 播放 MP3。
1 秒点击 ==) 暂停 mp3
3-三次点击 ==) 从暂停的地方重新开始播放 mp3。
mp3完成后再次点击图片重新开始播放,第一次点击没有反应,
我尝试了许多代码变体,但都没有成功。
如有任何帮助,我们将不胜感激。
主活动
public class MainActivity extends Activity {
private ViewPager mViewPager;
MediaPlayer mp;
private int length;
@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();
length = mp.getCurrentPosition();
}else{
mp = MediaPlayer.create(MainActivity.this, R.raw.aa);
mp.seekTo(length);
mp.start();
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion( MediaPlayer mp) {
length = mp.getCurrentPosition();
if(mp != null && mp.isPlaying()){
mp = MediaPlayer.create(MainActivity.this, R.raw.aa);
mp.start();
}
}
});
}
}
return super.onSingleTapConfirmed(e);
}
}
}
【问题讨论】:
标签: java android audio android-viewpager android-mediaplayer