我的应用播放选定数量的短声音(存储在 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"
谢谢您的帮助。
皮埃尔