首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MediaPlayer -创建多个实例?

MediaPlayer -创建多个实例?
EN

Stack Overflow用户
提问于 2015-09-10 18:14:08
回答 1查看 27关注 0票数 0

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

代码语言:javascript
复制
  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方法,检查它是否为空-所有内容。

所以。当有2-4个球的时候,一切都很好,一切正常。当有6-100个球时,它停止播放,一段时间后,它再次开始(这些声音消失了)。不知何故,他们都快冻死了。

有什么办法可以解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2015-09-10 18:27:41

好的,所以在发帖之前,我需要再想一想。已将catchMP =create(资源)移动到构造函数。不知道,为什么我在这里宣布它。完美工作:)

谢谢!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32499049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档