如何在Android中播放音效

时间:2012-05-04 14:46:10

标签: android audio

我正在寻找一个非常简单的代码来播放声音效果。到目前为止,我有这段代码:

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()方法时,没有任何反应。音频文件位于正确的位置。

2 个答案:

答案 0 :(得分:56)

您使用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 /目录中。从上面的任何地方播放它们。

答案 1 :(得分: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();
}