4

私はAndroidにかなり慣れていないので、優しくしてください!

私は次のコードを持っています。これは、「developersshort」を再生するだけだと思います。

public constructor(Context context){
    this.context = context;
    soundPool = new SoundPool(2, AudioManager.STREAM_MUSIC,0);
    soundPoolMap = new HashMap<Integer, Integer>();
    soundPoolMap.put(1, soundPool.load(this.context, 
        R.raw.developersshort, 1));         
}

public void run() {
    soundPool.play(soundPoolMap.get(1), 1, 1, 1, 0, 1f);
}

[何が起こっているのかを把握するために、現在、「開発者」と叫んでいるスティーブ・バルマーのリミックスを繰り返し再生しています! 音声ファイルのサイズは ~90KB です。]

エミュレーターでアプリを実行し、ボタンを押してサウンドをトリガーすると、期待どおりに「開発者、開発者、開発者...」などと表示されます。

しかし、携帯電話に展開すると、「ベロップ」のような音が1回聞こえた後、音が止まります。

何が起こっているのかわかりません。何かアイデアはありますか?

どうもありがとう!

4

3 に答える 3

1

サウンドファイルをリサンプリングしてみましたか???

その前に私のサウンドファイルがカットされます。しかし、私はその m4a を 44KHz から 22KHz に変換して再サンプリングしたところ、カットされることなく動作するようになりました。これを参照してください:SoundPoolのメモリの問題について

同じようにしてみてください。

それがあなたのために働くことを願っています。

于 2012-10-29T11:22:11.940 に答える
1

オーディオ ファイルは .ogg ファイルですか? 他のフォーマットでは、SoundPool に問題があるようです。それでもうまくいかない場合は、より小さなオーディオ ファイルでテストすることをお勧めします。オーディオ ファイルが 60kb を超えると、いくつかの不具合が発生しました。

于 2011-06-17T13:00:05.893 に答える