Массив MediaPlayer, вызывающий нулевой указатель в Android - PullRequest
0 голосов
/ 08 августа 2011

Может кто-нибудь понять, почему я получаю исключение NullPointerException с этим кодом?Код в основном предназначен для создания массива MediaPlayer, чтобы я мог проходить через него и останавливать / запускать все медиаплееры одновременно.Они также связаны с панелями управления громкостью.

private MediaPlayer[] media;


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    //media players

    media[0] = MediaPlayer.create(this, R.raw.drums);



    media[1] = MediaPlayer.create(this, R.raw.bass);


    media[2] = MediaPlayer.create(this, R.raw.synth);


    media[3] = MediaPlayer.create(this, R.raw.snare);


    media[4]  = MediaPlayer.create(this, R.raw.wobble);


    for(int i=0;i<media.length;i++){
         media[i].start();
         media[i].setLooping(true);
         media[i].setVolume(0,0);
    }


   //drums seekbar

    final SeekBar volControl = (SeekBar)findViewById(R.id.volbar);
    volControl.setMax(maxVolume);       
    volControl.setProgress(0);
    volControl.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 



        @Override
        public void onStopTrackingTouch(SeekBar arg0) {
            // TODO Auto-generated method stub

        }


        @Override
        public void onStartTrackingTouch(SeekBar arg0) {
            // TODO Auto-generated method stub
        }

        @Override
        public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
            // TODO Auto-generated method stub

            media[0].setVolume(arg1, arg1);

        }                       

    });       

Ответы [ 2 ]

3 голосов
/ 08 августа 2011

используйте как

 media=new MediaPlayer[5]; 

, а затем

media[0] = MediaPlayer.create(this, R.raw.drums);
media[1] = MediaPlayer.create(this, R.raw.bass);
media[2] = MediaPlayer.create(this, R.raw.synth);
media[3] = MediaPlayer.create(this, R.raw.snare);
0 голосов
/ 08 августа 2011

Чувак, ты не указываешь размер массива медиаплеера, в любом случае попробуй так, это поможет ....

приватный MediaPlayer [] mediaPlayer;

и в методе onCreate вашей активности укажите его размер как

mediaPlayer = новый MediaPlayer [10];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...