1

アプリケーションのバックグラウンドサウンドを再生しようとしています。SoundPoolクラスを使用しています。問題は、ループパラメータをゼロ値に設定した場合にのみサウンドが適切に再生されることですが、それ以外の値では機能しません。

初期化のための私のコードは次のとおりです。

    soundpool = new SoundPool(4, AudioManager.STREAM_MUSIC, 0);
    soundsMap = new HashMap<Integer, Integer>();
    soundsMap.put(1, soundpool.load(this, R.raw.soundfile_1, 1));
    soundsMap.put(2, soundpool.load(this, R.raw.soundfile_2, 1));

再生するための私のコードは

 soundpool.play(1,  0.9f, 0.9f, 1, -1, 1f);

ループ値に(-1)の代わりに(0)を入力するとサウンドが機能することを説明したように、(-1)または(0)以外の値が機能しない理由は誰にもわかりません(出力サウンドはありません) ?

4

1 に答える 1

1

ここで報告されているように、ファイルサイズはおそらくループするには大きすぎます:http ://www.talkandroid.com/android-forums/android-development-answers-tutorials-code-snippets/5132-soundpool-setloop-possible-bug .html

SoundPoolの場合、ファイルサイズは一般的にかなり大きいように思われるため、サウンドクリップを小さいクリップにカットするか、MediaPlayerを使用する必要があります。

于 2012-09-10T09:36:23.487 に答える