2011-08-14 27 views
3

SoundPoolクラスを使用して複数のサウンドエフェクトを再生する際に問題があります。基本的には、画面上に多数のオブジェクトをタップするというリアルタイムのゲームを作っています。プレイヤーがオブジェクトに触れるたびに、私はそのサウンドを再生する必要があります。だから私はSoundPoolクラスに目を向けました。以下は私のコードです:playSound()メソッドが呼び出されるたびにAndroid Soundpoolでサウンドが再生されない

private SoundPool mSoundPool; 
private int mSoundId; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    PreferencesManager.getInstance(this); 

    setContentView(R.layout.arcademode); 
    initialize(); 
} 

private void initialize() { 
    this.setVolumeControlStream(AudioManager.STREAM_MUSIC); 
    mSoundPool = new SoundPool(mBalloonPopCount, R.raw.pop, 0); 
    mSoundId = mSoundPool.load(this, R.raw.pop, 1); 
} 

private void playSound() { 
    float actualVolume = (float) audioManager.getStreamVolume(AudioManager.STREAM_MUSIC); 
    float maxVolume = (float) audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); 
    float volume = actualVolume/maxVolume; 
    mSoundPool.play(mSoundId, volume, volume, 1, 0, 1f); 
} 

今、私は何も聞いていません。私はLogCatに見たとき、私は次の行を参照してください。

08-14 19:48:50.117: ERROR/AudioFlinger(2613): invalid stream type 
08-14 19:48:50.117: ERROR/AudioTrack(15611): AudioFlinger could not create track, status: -22 
08-14 19:48:50.117: ERROR/SoundPool(15611): Error creating AudioTrack 

の問題のオーディオファイルが.WAVファイルです。私も.ogg.mp3のファイルを試してみました。どちらも動作しません。サウンドファイルは非常に小さく(.wavファイルは60KBを占めていません)、サイズは問題ではありません。

+1

問題の内容を把握したことがありますか?私は同じ問題を抱えており解決できません。 –

答えて

0

サウンドプールを使用しているすべての例から、ボリューム部分はあなたとは異なります持ってる。それはこのようなものだ:

float actualVolume = (float) audioManager.getStreamVolume(AudioManager.STREAM_MUSIC); 
float maxVolume = (float) audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); 
float volume = actualVolume/maxVolume; 
+0

動作しませんでした。 LogCatで同じエラーが発生しています。 – Dan

+0

別の形式のオーディオファイルを試しましたか? mp3やoggのような?ファイル形式にすることができます。 –

+0

はい、動作しません。私は様々なフォーマットで他のサウンドファイルを試してみましたが、私はまだエラーが発生します。 – Dan

3
mSoundPool = new SoundPool(mBalloonPopCount, R.raw.pop, 0); 

mSoundPool = new SoundPool(mBalloonPopCount, AudioManager.STREAM_MUSIC, 0); 
0

にする必要がないので、長い時間前に同じ問題を持っていました。私の場合、システム内のすべてのプロセスを強制終了することが助けになりました。それでも、私は何が起こったのか、問題の原因は何もわかりません。

関連する問題