У меня меньше 2 Java файлов классов (основной и адаптер).
Я хочу останавливать звук, когда нажата кнопка возврата, но мои попытки исчерпаны.
Когда кнопка возврата нажата, она должна go к третьему действию.
Итак, мне нужна помощь.
Основной класс
public class myClass extends AppCompatActivity {
ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_one);
viewPager = (ViewPager) findViewById(R.id.pagerOne);
PagerAdapter viewPagerAdapter = new PagerAdapter(this);
viewPager.setAdapter(viewPagerAdapter);}
}
Класс адаптера
public class MyPagerAdapter extends PagerAdapter {
Context context;
LayoutInflater inflater;
MediaPlayer mp;
public int[] images = { R.drawable.img1,R.drawable.img2 };
public String[] title = { "Image1","Image2" };
public PagerAdapter(Context context) { this.context = context; }
@Override
public int getCount() { return title.length; }
@Override
public boolean isViewFromObject(View view, Object object) { return (view == object); }
@Override
public Object instantiateItem(ViewGroup container, final int position) {
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.activity_custlayout,container,false);
ImageView slide = view.findViewById(R.id.myView);
TextView text= view.findViewById(R.id.txt);
slide.setImageResource(images[position]);
text.setText(title[position]);
releaseMediaPlayer();
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) { releaseMediaPlayer();
if (position == 0){ setupMediaPlayer(R.raw.lion); }
else if (position == 1){ setupMediaPlayer(R.raw.tiger); }
else { setupMediaPlayer(R.raw.tortoise);}
}
}); container.addView(view); return view;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) { releaseMediaPlayer(); container.removeView((ConstraintLayout)object); }
public void setupMediaPlayer(int resource) { mp = MediaPlayer.create(context, resource); mp.start(); }
public void releaseMediaPlayer() { if (mp != null) { mp.stop(); mp.release(); mp = null; } }
}
Неудачная попытка
Я попытался освободить звук из основного класса, как показано ниже, но это не сработало.
PagerAdapter pagerAdapter = new PagerAdapter(this);
pagerAdapter.releaseMediaPlayer();