MediaPlayer数组在Android中导致空指针

任何人都可以看到为什么我会用这段代码得到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); } }); 

用得像

  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); 

老兄你没有给媒体播放器arrays大小,反正尝试这种方式它会帮助….

私人MediaPlayer [] mediaPlayer;

并在你的活动的onCreate方法给它的大小

mediaPlayer = new MediaPlayer [10];