Android的SoundPool不播放任何声音

标签 android audio soundpool

我已经尽了一切努力来完成这项工作。 Android 的 SoundPool 类正在加载 .ogg 音频文件(已测试),但无法播放。 由于某种奇怪的原因,我无法使其正常工作。我已经关注了许多关于此事的教程和论坛,但仍然无法使其正常工作。

这是我的代码:

作为全局变量:

 SoundPool soundPool;
 boolean ya = false;

在我的 Activity 的 onCreate 上:

   this.setVolumeControlStream(AudioManager.STREAM_MUSIC);    
   if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
                soundPool = new SoundPool.Builder()
                .setMaxStreams(15)
                .build();
    }else{
        soundPool = new SoundPool(15, AudioManager.STREAM_MUSIC, 0);
    }

    soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
        @Override
        public void onLoadComplete(SoundPool sp, int sampleId, int status) {
            ya = true;
        }
    });     
    soundPool.load(this, R.raw.explosion_1, 1);

最后,关于我的一个按钮的 onClick 方法:

public void instructions(View v){
    if(ya){
        soundPool.play(R.raw.explosion_1, 0.99f, 0.99f, 1, 0, 0.99f);
    }
}

请帮忙。

最佳答案

为了播放声音,您需要将从 load() 获取的 id 传递到 play() 中。

int explosion = soundPool.load(this, R.raw.explosion_1, 1);
soundPool.play(explosion, 0.99f, 0.99f, 1, 0, 0.99f);

关于Android的SoundPool不播放任何声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30090967/

相关文章:

android - 仅在前台访问设备位置的权限

android - 从 Mp4 中提取音频并保存到 SD 卡 (MediaExtractor)

java - 如何使用 Android xml 形状在圆圈内画一个圆圈?

android - Paytm 校验和不匹配 - Android Paytm SDK 错误 : 330

objective-c - 音频和振动在模拟器而不是 ios 设备上工作

android - 在单个目录中存储多个音频文件-Android

java - 找不到wav文件中2个声帧之间的差异的问题

android - 在 SoundPool 播放中使用 String

java - 安卓文档 : constructor returning null for SoundPool?

Android:如何混合 2 个音频文件并使用 soundPool 重现它们