0

サウンドファイルのノイズを減らす学校向けのプログラムを書いています。これまでのところ、私はこのコードを作成しました。これは、セット1の前にn個のサンプルを取り、セットの後にn個のサンプルを取り、2つを平均すると思います。私の問題は、2番目のforループが実行されるたびに、sampleoutofboundexceptionが発生することです。これは、探しているサンプルが見つからないことを意味していると思いますが、その理由がわかりません。

for (int s = 0; s<= aSound.getNumSamples(); s++){    

  for ( int i=0; i<=level ; i++ ) {
    nSamp = aSound.getSample(i);
    sSize = nSamp.getValue();
    total=total + sSize;
  }

  for (int j = 0; j >= -level; j--){
    sSize2 = aSound.getSample(j).getValue();
    total1 = total1 + sSize2;
  }
  avg = (total1 + total) / level*2;

  for (int i = 0; i <= level*2+1; i++){
    result.getSample(i).setValue(avg);
  }
 }
 return aSound;
  }

この行を実行するたびにエラーが発生し、その理由がわかりません。何か助けはありますか?ありがとうございました

sSize2 = aSound.getSample(j).getValue();
4

2 に答える 2

2

の価値はlevel何ですか?私はそれがポジティブだと思います、その場合

for (int j = 0; j >= -level; j--)

の負の値をループしj、負のインデックスは通常無効です。そのため、インデックスの範囲外の例外が発生します。

これで問題が解決しない場合は、オブジェクトの種類など、詳細を投稿する必要がありますaSound

于 2010-11-13T03:11:46.327 に答える
0

aSound は、55125 サンプルの wav ファイルを保持するオブジェクトです。

aSound はコレクションとして。私のコメントに書かれているように、負のインデックスはありません

aSound はコレクションであり、配列またはコレクションに負のインデックスはありません

于 2010-11-13T03:39:15.983 に答える