私のアプリは、選択した数の短い音 (res/raw に保存されています) を再生します。サウンドは、これらのサウンドを含む配列 soundfileFR[] でランダムに選択されます。ボタンをクリックすると、選択した数のサウンドが再生され、「for」ループを使用して次々とサウンドが再生されます。アプリは完全に正常に動作します...ただし、何らかの理由で、これらのサウンドが 30 を超えて連続して再生されることはありません。つまり、アプリを起動して、再生するサウンドの数として「35」を選択すると、最後の 5 つのサウンドは再生されません。または、最初に「20」を選択すると、すべてのサウンドが再生され、次に「12」を選択すると、最後の 2 つのサウンドは再生されません。
各サウンドは、約 50 Ko の ".wav" です。ある種のメモリ制限はありますか?各サウンド間でメディアプレーヤー (?) を「リセット」する必要がありますか? もしそうなら、どのように?
「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"
ご協力ありがとうございました。
ピエール