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 Docs 的链接

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 回答