2

我的应用播放选定数量的短声音(存储在 res/raw 中)。声音是在包含这些声音的数组 soundfileFR[] 中随机选择的。单击按钮即可播放选定数量的声音,使用“for”循环播放一个接一个的声音。该应用程序运行得非常好......除了,由于某种未知的原因,它永远不会连续播放超过 30 个这些声音,即如果我启动应用程序并选择“35”作为要播放的声音数量,它不会播放最后五个声音。或者,如果我首先选择“20”,它会播放所有声音,然后我选择“12”,它不会播放最后 2 个声音。

每个声音都是一个“.wav”,仅重约 50 Ko。有某种内存限制吗?我是否需要在每个声音之间“重置”媒体播放器(?)?如果有怎么办?

“for”循环如下:

for (int n = 1; n <= totalNb; n++) {
    final int randomNb;

    final int nn = n;

    randomNb = (int)(Math.floor(Math.random()*(10))); // random nb between 0 and 9                              

    handlerH.postDelayed(new Runnable(){

        public void run() {

        mp = MediaPlayer.create(getBaseContext(), soundfileFR[randomNb]);  // initializes a sound for folder res/raw

            mp.seekTo(0); 
            mp.start();  // plays the sound

            pgbSpoken.setProgress(nn);  // incrementation of the progressBar

        }

    },
    initialdelay + n * intervalrep);    


} // end of "for"

谢谢您的帮助。

皮埃尔

4

0 回答 0