我正在处理一个带有音频文件和照片的应用程序。(像字典一样)我想为“ A”照片播放“ A”声音。单击按钮时会播放声音(为简单起见)。应用程序运行正常,但是单击按钮时(30-40次单击)声音也不会播放。我正在共享我的代码部分。
...
public MediaPlayer mp;
public Context con;
public LayoutInflater lf;
//Sounds and photos
public Integer[] audios = {
R.raw.a,
R.raw.b,
R.raw.c,
R.raw.d };
public Integer[] cards = {
R.drawable.a,
R.drawable.b,
R.drawable.c,
R.drawable.d };
public Object instantiateItem(@NonNull ViewGroup container, final int position) {
lf = (LayoutInflater) con.getSystemService(con.LAYOUT_INFLATER_SERVICE);
View view = lf.inflate(R.layout.slide_layout,container,false);
ImageView imageView = (ImageView) view.findViewById(R.id.imageView);
ImageButton btn;
btn=(ImageButton) view.findViewById(R.id.imageButton);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mp = MediaPlayer.create(con,audios[position]);
mp.start();
}
});
imageView.setImageResource(cards[position]);
ViewPager vp = (ViewPager) container;
vp.addView(view,0);
return view;
}
...
答案 0 :(得分:0)
请勿为您播放的每种声音创建一个新的MediaPlayer。创建一个,并在每次播放声音时重复使用。