[英]MediaPlayer array causing null pointer in Android
谁能看到为什么我会通过此代码得到NullPointerException? 该代码基本上是创建一个MediaPlayer数组,以便我可以遍历它并立即停止/启动所有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);
老兄,您没有为Mediaplayer数组提供大小,反正尝试以这种方式会有所帮助。
私有MediaPlayer [] mediaPlayer;
并在您活动的onCreate方法中将其大小设置为
mediaPlayer =新的MediaPlayer [10];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.