2

私のアプリは、選択した数の短い音 (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"

ご協力ありがとうございました。

ピエール

4

0 に答える 0