【问题标题】:Android Soundpool fails to play soundAndroid Soundpool 无法播放声音
【发布时间】:2011-08-14 23:57:21
【问题描述】:

我在使用 SoundPool 类播放多个音效时遇到问题。基本上我正在制作一个实时游戏,其中涉及用户点击屏幕上的一堆对象。每当玩家触摸一个物体时,我都需要播放声音。所以我转向了 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);
}

现在,无论何时调用 playSound() 方法,我都听不到任何声音。当我查看 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)所以大小不是问题...

【问题讨论】:

  • 你有没有弄清楚问题出在哪里?我遇到了同样的问题,无法解决。

标签: java android android-logcat


【解决方案1】:
mSoundPool = new SoundPool(mBalloonPopCount, R.raw.pop, 0);

需要

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

【讨论】:

    【解决方案2】:

    从我听到的使用 SoundPool 的每个示例中,音量部分都与您的不同。是这样的:

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

    【讨论】:

    • 您尝试过其他格式的音频文件吗?像mp3或ogg?可以是文件格式。
    • 是的,但它不起作用。我什至尝试过不同格式的其他声音文件,但仍然出现错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多