21

効果音を再生する非常に単純なコードを作成したいと思っています。これまでのところ、私はこのコードを持っています:

SoundManager snd;
int combo;

private void soundSetup() {
    // Create an instance of the sound manger
    snd = new SoundManager(getApplicationContext());

    // Set volume rocker mode to media volume
    this.setVolumeControlStream(AudioManager.STREAM_MUSIC);

    // Load the samples from res/raw
    combo = snd.load(R.raw.combo);
}

private void playSound() {
    soundSetup();
    snd.play(combo);
}

しかし、どういうわけか私がこの方法を使うplaySound()と何も起こりません。オーディオファイルは正しい場所にあります。

4

2 に答える 2

67

使用している特別な理由はありますSoundManagerか?代わりに使用MediaPlayerします。Androidドキュメントへのリンクは次のとおりです。

http://developer.android.com/reference/android/media/MediaPlayer.html

それならそれは

    MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.combo);
    mp.start();

「res/」ディレクトリの下に「raw/」というディレクトリを作成します。wavまたはmp3ファイルをraw/ディレクトリにドラッグします。上記のようにどこからでも再生できます。

于 2012-05-04T14:54:53.690 に答える
6

トップアンサーも使用しようとしましたが、連続して何度もサウンドを再生しようとすると、MediaPlayerからNullPointerExceptionsが発生したため、コードを少し拡張しました。

FXPlayerは私のグローバルMediaPlayerです。

public void playSound(int _id)
{
    if(FXPlayer != null)
    {
        FXPlayer.stop();
        FXPlayer.release();
    }
    FXPlayer = MediaPlayer.create(this, _id);
    if(FXPlayer != null)
        FXPlayer.start();
}
于 2015-04-26T19:43:38.117 に答える