android SoundPool点击一次连续响问题

Cycle_C 发布于 2016/09/08 10:46
阅读 803
收藏 0

我设置了声音池数量为1,不循环播放,然后在一台联想机上,出现点一下,连续响很多次,音量渐渐降低。偶尔会这样,没有找到出现的规律。代码如下:

 private SoundPool soundPool;
    private int soundId;
    private boolean flag = false; 
   /**
     * 初始化播放声音soundPool
     */
    private void initSound() {
        //实现soundPool对象
        soundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0); // 分别对应声音池数量,AudioManager.STREAM_MUSIC
        //使用soundPool加载声音,该操作位异步操作,如果资源很大,需要一定的时间
        soundId = soundPool.load(this, R.raw.speech_sound_press, 1);
        //为声音池设定加载完成监听事件
        soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {
            @Override
            public void onLoadComplete(SoundPool soundPool,
                                       int sampleId, int status) {
                flag = true; // 表示加载完成
            }
        });
    }
  /**
     * 播放操作
     */
    private void playSound() {
        if (flag) {
            // 播放声音池中的文件, 可以指定播放音量,优先级 声音播放的速率
            soundPool.play(soundId, 1.0f, 0.5f, 1, 0, 1.0f);
        } else {
            soundPool.stop(soundId);
        }
    }

求解

加载中
返回顶部
顶部