2

我遇到了一个奇怪的问题,希望有人能回答。我有 4x4 按钮,如果我点击它,每个按钮都会播放短 1 秒的声音。我的代码:

Button_1= (Button) findViewById(R.id.button1);
            Button_1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (sound!=null){
                        sound.stop();
                        sound.release();
                        sound=null;
                    }
                    sound = MediaPlayer.create(Main.this, R.raw.short_sound);
                    sound.start();
                }
            });

所以发生的事情是我触摸了所有的按钮,所以首先是按钮1,然后是按钮2,每次我触摸它,都会播放一个短促的声音。但有时当我到达第 14 或第 15 或第 16 按钮时,它不会播放应有的声音。其他按钮工作,但不知何故最后 1,2 或 3 有时不播放任何声音。如果我开始向后触摸按钮,所以我先触摸第 16 个按钮它总是可以工作,但随后可能第 1 个和第 2 个按钮保持沉默。

什么可能导致这种情况?LogCat 不写任何东西。

4

1 回答 1

0

当您调用 MediaPlayer.create() 时,您分配的资源不一定由 GC 机制释放。您应该手动释放 MediaPlayer.release() 例程。当您完成对象时

于 2014-02-01T17:02:31.660 回答