Есть ли ограничение на воспроизведение звукового файла в Android? - PullRequest
0 голосов
/ 30 апреля 2019

Я делаю приложение с аудиофайлами и фотографиями. (Словарь словарь) Я хочу воспроизвести звук "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;
}
...

1 Ответ

0 голосов
/ 30 апреля 2019

Не создавайте новый MediaPlayer для каждого воспроизводимого звука.Создайте его и используйте повторно каждый раз, когда вы хотите воспроизвести звук.

...