Android, лага в музыке играет при нажатии кнопки - PullRequest
1 голос
/ 15 августа 2011

У меня есть две кнопки в очень простом приложении, это мой код при нажатии любой из этих кнопок:

 public void button_clicked1(View v) 
    {
        text1.setText("1"+width);  

         mp = MediaPlayer.create(GameScreen.this, R.raw.piano_a);   
             try {
                    mp .prepare();
                } catch (IllegalStateException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
         mp.start();



        }


    public void button_clicked2(View v) 
    {
        text1.setText("2"+height);    
        mp = MediaPlayer.create(GameScreen.this, R.raw.piano_b);   
        /*
            try {
                mp .prepare();
            } catch (IllegalStateException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }*/
     mp.start();
        }

Каждая из этих необработанных фортепианных нот составляет около 20 секунд ... но когда янажмите любую из кнопок, чтобы немедленно воспроизвести файл ... но я обнаружил, что есть задержка (и она продолжает увеличиваться), а иногда, если я нажимаю обе кнопки быстро несколько раз ... это принудительно завершает работу(

1 Ответ

0 голосов
/ 15 августа 2011

Согласно документации, при загрузке необработанного аудиофайла (должным образом закодированного) вам не нужно вызывать метод подготовки, просто:

MediaPlayer mediaPlayer = MediaPlayer.create(GameScreen.this, R.raw.piano_a);
mediaPlayer.start();

Это должно сделать это.

...