MediaPlayer - 创建多个实例?

时间:2015-09-10 10:14:08

标签: java android

我在屏幕上浮动了一些球。当它们发生碰撞时,我会用MediaPlayer播放声音。

  public static MediaPlayer create(Resources resources ) {
    try {

        AssetFileDescriptor afd = resources.openRawResourceFd(R.raw.collide);
        MediaPlayer mp = new MediaPlayer();
        mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
        afd.close();
        mp.prepare();
        return mp;
    } catch (IOException ex) {
        Log.d("", "create failed:", ex);
        // fall through
    } catch (IllegalArgumentException ex) {
        Log.d("", "create failed:", ex);
        // fall through
    } catch (SecurityException ex) {
        Log.d("", "create failed:", ex);
        // fall through
    }
    return null;
}




  private  void moveBalls(){ //
    for (int i = 0; i < balls.size(); i++) {
        Ball ball1 = balls.get(i);
        for (int a = i + 1; a < balls.size(); a++) {
            Ball ball2 = balls.get(a);
            if(ball1.isColliding(ball2)){
               ball1.Collide(ball1,ball2);
                catchMP = create(resources);
                catchMP.start();
            }
        }
    }
    for(Ball ball : balls){
        ball.step();
    }
}

我已经尝试过.stop,.release方法,检查它是否为空 - 一切。

因此。当有两个四球时,一切都很好,它会正常播放。当有6-100个球停止播放时,一段时间后它再次开始(这些声音已经消失)。他们以某种方式冻结。

有没有办法解决这个问题?

0 个答案:

没有答案