简体   繁体   English

MediaPlayer数组在Android中导致空指针

[英]MediaPlayer array causing null pointer in Android

Can anyone see why I would be getting a NullPointerException with this code? 谁能看到为什么我会通过此代码得到NullPointerException? The code is basically to create a MediaPlayer array so that I can loop through it and stop/start all of the mediaplayers at once. 该代码基本上是创建一个MediaPlayer数组,以便我可以遍历它并立即停止/启动所有mediaplayer。 They are also linked to seekbars to control volume. 它们还链接到搜索杆以控制音量。

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

        }                       

    });       

use like 使用像

 media=new MediaPlayer[5]; 

and then 接着

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

Dude you are not giving the size to mediaplayer array, anyways try this way it will help.... 老兄,您没有为Mediaplayer数组提供大小,反正尝试以这种方式会有所帮助。

private MediaPlayer[] mediaPlayer; 私有MediaPlayer [] mediaPlayer;

and in your activity's onCreate method give it size like 并在您活动的onCreate方法中将其大小设置为

mediaPlayer = new MediaPlayer[10]; mediaPlayer =新的MediaPlayer [10];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM