Android的SoundPool没有播放任何声音

时间:2015-05-07 02:33:22

标签: android audio soundpool

我尝试过这项工作。 Android的SoundPool类正在加载.ogg音频文件(已测试),但它没有播放。 由于一些奇怪的原因,我无法让这个工作。我已经关注了很多这方面的教程和论坛,但仍然无法使其发挥作用。

这是我的代码:

作为全局变量:

 SoundPool soundPool;
 boolean ya = false;

关于我的活动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);
    }
}

请帮忙。

2 个答案:

答案 0 :(得分:4)

要播放声音,您需要将id的{​​{1}}传递给load()

play()

答案 1 :(得分:0)

我使用以下代码播放了SD卡中的声音,它对我有用。

ButtonGroup